codeforces Unusual Product

题意:给你n*n的矩阵,里面是1或0,然后q次询问,如果操作数为1,那么就把x行的数0变成1,1变成0;如果操作数为2,那么在x列上的数0变成1,1变成0;如果是3,输出codeforces Unusual Product

思路:在求codeforces Unusual Product的时候,对角线上的数是自己乘自己,其他位置上的数都是相乘两次,最后其他位置上的数求得值都为0,当改变每一行或者每一列其它位置上不用管,只是对角线上的有个数改变了,那么最后的值异或1就可以。

 #include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; int c[][];
int n,q;
int ans[]; int main()
{
int x;
scanf("%d",&n);
int ans1=;
for(int i=; i<=n; i++)
{
for(int j=; j<=n; j++)
{
scanf("%d",&x);
if(i==j) ans1^=x;
}
}
int cnt=;
scanf("%d",&q);
for(int i=; i<=q; i++)
{
int op;
scanf("%d",&op);
if(op==)
{
ans[cnt++]=ans1;
}
else
{
scanf("%d",&x);
ans1^=;
}
}
for(int i=; i<cnt; i++)
{
printf("%d",ans[i]);
}
printf("\n");
return ;
}
上一篇:EF Core 2.0中怎么用DB First通过数据库来生成实体


下一篇:codeforces 510 C Fox And Names【拓扑排序】