比赛 |
HAOI2009 模拟试题2 |
评测结果 |
AAAATTTTTT |
题目名称 |
着色方案 |
最终得分 |
40 |
用户昵称 |
BYVoid |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2009-04-22 09:21:50 |
显示代码纯文本
/*
* Problem: HAOI2009模拟2 color
* Author: Guo Jiabao
* Time: 2009.4.22 9:09
* State: Done
* Memo: 搜索
*/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
const int MAXK=16,MAXN=101;
using namespace std;
int K,N,C[MAXK],Ans;
int U[MAXN];
void init()
{
int i;
freopen("color.in","r",stdin);
freopen("color.out","w",stdout);
scanf("%d",&K);
for (i=1;i<=K;i++)
{
scanf("%d",&C[i]);
N+=C[i];
}
}
void dfs(int k)
{
int i;
if (k>N)
{
Ans++;
return;
}
for (i=1;i<=K;i++)
{
if (C[i]>0 && i!=U[k-1])
{
C[i]--;
U[k]=i;
dfs(k+1);
C[i]++;
}
}
}
int main()
{
init();
dfs(1);
printf("%d\n",Ans);
return 0;
}