codeforces#238_div2_C Unusual Product
题目地址:戳这里
思路: 考察整体的思路:
可以看出,对p[i][j] 如果i!=j 那么a[i][j]*a[j][i] 一定会在取出第i行时,和取出第j行时,出现两次 ,这样mod 2 就对答案没有贡献了
所以改变一次,只看对角线上的元素
那么刚好,每次操作都改变一次答案0到1 ,1到0;
用异或可以完成
#include<iostream> #include<cstdio> using namespace std; int p[1005][1005]; int main() { int n; cin>>n; for(int i=0;i<n;i++) for(int j=0;j<n;j++) { scanf("%d",&p[i][j]); } int ans=0; for(int i=0;i<n;i++) ans+=p[i][i]; ans%=2; int opcode; int operand; int q; cin>>q; for(int i=0;i<q;i++) { scanf("%d",&opcode); if(opcode==3) cout<<ans; else { scanf("%d",&operand); ans=ans^1; } } }
posted on 2014-03-25 01:40 814jingqi的ACM 阅读(143) 评论(0) 编辑 收藏 举报