码迷,mamicode.com
首页 > 其他好文 > 详细

bzoj 1923: [Sdoi2010]外星千足虫

时间:2016-03-18 07:14:00      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:

 1 #include<cstdio>
 2 #include<iostream>
 3 using namespace std;
 4 int n,m,a[2009][2009],st=1;
 5 char ch[6009];
 6 bool gao(int a1)
 7 {
 8     for(int i=st;i<=a1;i++)
 9       {
10         int k;
11         for(k=i;k<=a1;k++)
12           if(a[k][i])
13             break;
14         if(k==a1+1)
15           {
16             st=i;
17             return 0;
18           }
19         for(int j=1;j<=n+1;j++)
20           swap(a[i][j],a[k][j]);
21         k=a[i][i];
22         for(int j=1;j<=m;j++)
23           if(i!=j&&a[j][i])
24             {
25               k=a[j][i];
26               for(int l=1;l<=n+1;l++)
27               a[j][l]=(a[j][l]-a[i][l]*k+2)%2;
28             }
29         if(i==n)
30           return 1;
31       }
32 }
33 int main()
34 {
35     scanf("%d%d",&n,&m);
36     for(int i=1;i<=m;i++)
37       {
38         scanf("%s",ch+1);
39         for(int j=1;j<=n;j++)
40            a[i][j]=ch[j]-0;
41         scanf("%d",&a[i][n+1]);
42       }
43     for(int i=n;i<=m;i++)
44       if(gao(i))
45         {
46             printf("%d\n",i);
47             for(int i=1;i<=n;i++)
48               if(a[i][n+1]%2)
49                 printf("?y7M#\n");
50               else
51                 printf("Earth\n");
52             return 0;
53         }
54     printf("Cannot Determine\n");
55     return 0;
56 }

据题目可知就是解方程,所以高斯消元法

bzoj 1923: [Sdoi2010]外星千足虫

标签:

原文地址:http://www.cnblogs.com/xydddd/p/5290268.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!