xiaoguozi's Blog
Pay it forword - 我并不觉的自豪,我所尝试的事情都失败了······习惯原本生活的人不容易改变,就算现状很糟,他们也很难改变,在过程中,他们还是放弃了······他们一放弃,大家就都是输家······让爱传出去,很困难,也无法预料,人们需要更细心的观察别人,要随时注意才能保护别人,因为他们未必知道自己要什么·····
 http://acm.hdu.edu.cn/showproblem.php?pid=1524
 1 #include <iostream>
 2 #include <vector>
 3 
 4 using namespace std;
 5 int dp[1006];
 6 struct Node
 7 {
 8     vector<int> next;
 9 };
10 vector<Node> vec;
11 int dfs(int k)
12 {
13     int hash[100];
14     memset(hash,0,sizeof(hash));
15 
16     for(int i=0;i<vec[k].next.size();++i){
17         if(dp[vec[k].next[i]]==-1)
18             dp[vec[k].next[i]]=dfs(vec[k].next[i]);
19         hash[dp[vec[k].next[i]]]=1;
20     }
21 
22     for(int i=0;i<100;i++){
23         if(hash[i]==0)return i;
24     }
25 };
26 int main()
27 {
28     int n;
29     while(scanf("%d",&n)!=EOF){
30         vec.clear();
31         vec.resize(1005);
32         memset(dp,-1,sizeof(dp));
33         int k;
34         for(int i=0;i<n;i++){
35             scanf("%d",&k);
36             int a;
37             while(k--){
38                 scanf("%d",&a);
39                 vec[i].next.push_back(a);
40             }
41         }
42         int m;    
43         while(scanf("%d",&m),m){
44             int sg=0;
45             for(int i=0;i<m;i++){
46                 scanf("%d",&k);
47                 if(dp[k]==-1)
48                     dp[k]=dfs(k);
49                 sg^=dp[k];
50             }
51             if(sg==0){
52                 printf("LOSE\n");
53             }
54             else printf("WIN\n");
55         }
56     }
57     return 0;
58 }
59 
posted on 2008-07-24 11:10 小果子 阅读(357) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理