| ||||||||||
| 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:crackerwang at 2007-10-15 22:52:02 可以,下面是我两次AC的代码,前一次算是证明吧
Problem: 2965 User: huicpc39
Memory: 24K Time: 45MS
Language: C Result: Accepted
Source Code
#include<stdio.h>
int main()
{char s[5];int i,j,k,st[4][4];
for(i=0;i<4;++i)for(j=0;j<4;++j)st[i][j]=0;
for(i=0;i<4;++i)
{scanf("%s",s);
for(j=0;j<4;++j)if(s[j]=='+')
{st[i][j]++;
for(k=0;k<4;++k)st[k][j]++;
for(k=0;k<4;++k)st[i][k]++;}}
for(i=0;i<4;++i)for(j=0;j<4;++j)st[i][j]%=2;
for(i=j=0;i<4;++i)for(k=0;k<4;++k)if(st[i][k])j++;
printf("%d\n",j);
for(i=0;i<4;++i)for(j=0;j<4;++j)if(st[i][j])printf("%d %d\n",i+1,j+1);
}
按照以上思路,直接生成结果。
Source Code
Problem: 2965 User: huicpc39
Memory: 16K Time: 0MS
Language: C Result: Accepted
Source Code
#include <stdio.h>
int s[16]={0x111f,0x222f,0x444f,0x888f,0x11f1,0x22f2,0x44f4,0x88f8,
0x1f11,0x2f22,0x4f44,0x8f88,0xf111,0xf222,0xf444,0xf888};
int main()
{char c;int i,n,j;
n=i=j=0;
while((c=getchar())!=EOF)
if(c!=10)if(c=='+')n^=s[i++];else ++i;
for(i=0;i<16;++i)if(n&(1<<i))++j;printf("%d\n",j);
for(i=0;i<16;++i)if(n&(1<<i))printf("%d %d\n",i/4+1,i%4+1);}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator