| ||||||||||
| 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:关于这题,很无语!!!1In Reply To:关于这题,很无语!!!1 Posted by:nower at 2009-08-18 18:57:25 > WA的代码:#include"stdio.h"
> #include"string.h"
> int g[1001][1001],sg[1001],flag[1001];
> int n,m,num;
> void dfs(int p)
> {
> int i;
> memset(flag,0,sizeof(flag));
> for(i=0;i<n;i++)
> {
> if(g[p][i])
> {
> if(sg[i]==-1)
> {
> dfs(i);
> flag[sg[i]]=1;
> }
> else
> {
> flag[sg[i]]=1;
> }
> }
> }
> for(i=0;i<n;i++)
> if(flag[i]==0)
> {
> sg[p]=i;
> break;
> }
> }
> int main()
> {
> int i,j,temp,res;
> while(scanf("%d",&n)!=EOF)
> {
> memset(g,0,sizeof(g));
> memset(sg,0xff,sizeof(sg));
> for(i=0;i<n;i++)
> {
> scanf("%d",&num);
> for(j=0;j<num;j++)
> {
> scanf("%d",&temp);
> g[i][temp]=1;
> }
> }
> for(i=0;i<n;i++)
> if(sg[i]==-1)
> dfs(i);
> while(scanf("%d",&m),m!=0)
> {
> res=0;
> for(i=0;i<m;i++)
> {
> scanf("%d",&temp);
> res=res^sg[temp];
> }
> if(res==0)
> printf("LOSE\n");
> else
> printf("WIN\n");
> }
> }
> return 0;
> }
> 之后把flag数组改为在dfs函数里面定义,如下:
> void dfs(int p)
> {
> int i;
> bool flag[1001]={false};
> 结果AC了
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator