| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:开心In Reply To:开心 Posted by:hzgood at 2012-07-10 10:27:52 > #include<cstdio>
> #include<iostream>
> using namespace std;
> int f[9]={0};
> int a[9]={9};
> int flag;
> int m[9][9] ={ {1,1,0,1,1,0,0,0,0},
> {1,1,1,0,0,0,0,0,0},
> {0,1,1,0,1,1,0,0,0},
> {1,0,0,1,0,0,1,0,0},
> {0,1,0,1,1,1,0,1,0},
> {0,0,1,0,0,1,0,0,1},
> {0,0,0,1,1,0,1,1,0},
> {0,0,0,0,0,0,1,1,1},
> {0,0,0,0,1,1,0,1,1}};
>
> void out()
> {
> for (int i = 0; i<9; i++)
> for (int j = 0; j < f[i];j++)
> printf("%d ",i+1);
> printf("\n");
> }
> int tmp[9] = {0};
> int judge()
> {
> int i,j;
>
> for (i = 0; i < 9; i++)
> {
> tmp[i] = a[i];
> //cout<<tmp[i]<<' ';
> for (j = 0; j < 9; j++)
> {
> tmp[i]+=f[j]*m[j][i];
> }
> if (tmp[i] % 4) break;
> }
> //cout<<i<<endl;
> if (i == 9)
> {
>
> flag = 0;
> return 1;//!!
> }
> return 0;//!!
> }
>
> void dfs(int n)
> {
> if (n == 9)
> {
> if ( judge())
> {
> flag = 0;
> out();
> return;
> }
> return;
> }
> if (flag)
> {
> for (int i = 0; i<4; i++)
> {
> f[n] = i;
> dfs(n+1);
> if (flag == 0) return;
> f[n] = 0;
> }
> }
> }
>
> int main()
> {
> //freopen("1166.txt","r",stdin);
>
> for (int i = 0; i<9; i++) scanf("%d",&a[i]);
> flag = 1;
> dfs(0);
>
> }
哈哈
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator