luogu P2117 小Z的矩阵(结论题)

题意

题解

这题有点水。

我们发现对答案有贡献的实际上只有左上到右下的对角线上的数。

因为不在这条对角线上的乘积都要计算两遍,然后%2就都没了。。。

然后就做完了。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #include<algorithm>
 6 using namespace std;
 7 const int N=2000;
 8 int n,q,ans,a[N][N];
 9 int main(){
10     scanf("%d%d",&n,&q);
11     for(int i=1;i<=n;i++)
12         for(int j=1;j<=n;j++){
13             scanf("%d",&a[i][j]);
14         }
15     for(int i=1;i<=n;i++){
16         ans+=a[i][i];
17     }
18     ans%=2;
19     for(int i=1;i<=q;i++){
20         int k; 
21         scanf("%d",&k);
22         if(k==1){
23             int x;
24             scanf("%d",&x);
25             ans^=1;
26         }
27         else if(k==2){
28             int x;
29             scanf("%d",&x);
30             ans^=1;
31         }
32         else {
33             printf("%d",ans);
34         }
35     }
36     return 0;
37 }

猜你喜欢

转载自www.cnblogs.com/Xu-daxia/p/9563713.html