codeforces Unusual Product

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

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

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4 using namespace std;
 5
 6 int c[1010][1010];
 7 int n,q;
 8 int ans[10000010];
 9
10
11 int main()
12 {
13     int x;
14     scanf("%d",&n);
15     int ans1=0;
16     for(int i=1; i<=n; i++)
17     {
18         for(int j=1; j<=n; j++)
19         {
20             scanf("%d",&x);
21             if(i==j) ans1^=x;
22         }
23     }
24     int cnt=0;
25     scanf("%d",&q);
26     for(int i=1; i<=q; i++)
27     {
28         int op;
29         scanf("%d",&op);
30         if(op==3)
31         {
32             ans[cnt++]=ans1;
33         }
34         else
35         {
36             scanf("%d",&x);
37             ans1^=1;
38         }
39     }
40     for(int i=0; i<cnt; i++)
41     {
42         printf("%d",ans[i]);
43     }
44     printf("\n");
45     return 0;
46 }

时间: 2024-08-09 06:34:18

codeforces Unusual Product的相关文章

CodeForces - 405C

Unusual Product Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Submit Status Description Little Chris is a huge fan of linear algebra. This time he has been given a homework about the unusual square of a square matrix. T

Codeforces Round #238 (Div. 1)

感觉这场题目有种似曾相识感觉,C题还没看,日后补上.一定要坚持做下去. A Unusual Product 题意: 给定一个n*n的01矩阵,3种操作, 1 i 将第i行翻转 2 i 将第i列翻转 3 询问矩阵第i行和第i列做向量乘法之和. 分析: 分析发现对于3的结果取决于对角线上1的个数num,即num%2,然后就很好做了,对于每次操作,只需要改变该行或该列后,对角线上仍然有多少个1. 代码: 1 #pragma comment(linker, "/STACK:16777216")

大神刷题表

9月27日 后缀数组:[wikioi3160]最长公共子串 dp:NOIP2001统计单词个数 后缀自动机:[spoj1812]Longest Common Substring II [wikioi3160]最长公共子串 [spoj7258]Lexicographical Substring Search 扫描线+set:[poj2932]Coneology 扫描线+set+树上删边游戏:[FJOI2013]圆形游戏 结论:[bzoj3706][FJ2014集训]反色刷 最小环:[poj1734

矩阵 总结

前言 矩阵是一种较为基础的数学工具,OI里面好像不常考?,反正学完数学一本通里的矩阵,做一些矩阵的应用感觉就应该可以了.行列式也是很有趣的东西,我花时间钻研了一下.下面归纳总结一下我做过的一些矩阵的题型 如果定义这种不会请百度吧 -> 百度矩阵 矩阵乘法 矩阵里面最主要的一种.下面是矩阵乘法的一些题. 矩阵快速幂 P3390模板题 基础. 矩阵加速递推数列 P1939模板题 加速加法递推直接设状态转移矩阵就好了. 石头游戏 其实想清楚了石头要从一个格子转移到另一个格子,就可联想到用矩阵来表示格子

codeforces 487C Prefix Product Sequence (模逆元+构造)

转自http://blog.csdn.net/houserabbit/article/details/41513745 题解写的真棒.. 题目链接:http://codeforces.com/problemset/problem/487/C 题目大意:构造一个1~n的排列  使得n个前缀积对n取余是一个0~n-1的排列 题目分析:好题,首先我们通过简单的分析可以得到n肯定是最后一个数,因为如果n在前面,前缀积肯定不止1个是n的倍数,也就是说对n取模至少有两个0,显然不满足排列,也就是说取模得到排

Codeforces Round #344 (Div. 2) E. Product Sum 二分斜率优化DP

E. Product Sum Blake is the boss of Kris, however, this doesn't spoil their friendship. They often gather at the bar to talk about intriguing problems about maximising some values. This time the problem is really special. You are given an array a of

Codeforces 900D Unusual Sequences 容斥原理

题目链接:900D  Unusual Sequences 题意: 给出两个数N,M.让你求数列(和为M,gcd为N)的个数. 题解: 首先,比较容易发现的是M%N如果不为零,那么一定不能构成这样的序列.那么可以设 k = M/N,则可以想象为用k个1来构成序列的个数,运用隔板原理可以求出k个1可以构成的序列总数为2^(k-1),但是这里面其实有不构成条件的(gcd>N)比方说6个相同的数(2,2,2)构成这样gcd就是2×N而不是N了.所以要减去这些数的情况,这样减的话发现不能用递归来做,要先记

Makes And The Product CodeForces - 817B (思维+构造)

B. Makes And The Product time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output After returning from the army Makes received a gift — an array a consisting of n positive integer numbers. He hadn'

CodeForces 487C Prefix Product Sequence

题意: 构造一个1~n的排列  使得n个前缀积%n是一个0~n-1的排列 思路: 首先确定n一定放最后  要不然会有%n会有多个0  这时n-1位置的前缀积为(n-1)! 接着讨论n  n为合数时只有n=4有解  因为如果n为合数一定可以拆成p*q的形式  明显pq|(n-1)! 然后构造ai=(i+1)*inv[i]  因为(i+1)*inv[i] == (j+1)*inv[j]时一定有i==j  所以这样构造满足ai是唯一的  也就是说是一个排列 而且这样构造使得前缀积 a1*a2*a3..