Adjustment Office Gym - 100851A 2       3       4 3       4       5 4       5       6 n<=10^6,q<=10^5 每个坐标点的值为x+y. q次查询,每次求某行或某列的和,然后清空. in                   out 3 7                 12R 2                 10C 3                 0R 2                 5R…
题意:给定一个 n*n 的矩阵,然后有 m 个询问,问你每一行或者每一列总是多少,并把这一行清空. 析:这个题不仔细想想,还真不好想,我们可以根据这个题意,知道每一行或者每一列都可以求和公式来求,然后再送去变成0的数,由于每一行或者每一列, 都是等差数列,所以我们只要记录每一个的第一个元素就好,再记录有多少个,然后就可以推算出来. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cst…
题意:给你一个n*n的矩阵,初始时,(x,y)的值为x+y.可能有两类操作,一类是对某一行求和,并将这一行置零:另一类是对某一列求和,并将这一列置零. 维护四个值:一个是列标号之和,一个是当前存在的列数,一个是行标号之和,另一个是当前存在的行数. 询问某一行的时候,只需要输出列标号之和+该行行号*当前存在列数,然后行数减一,行标号之和减去该行标号即可.列同理.注意不要重复删了. #include<cstdio> using namespace std; typedef long long ll…
题目链接: http://codeforces.com/gym/100851 题目大意: 一个N*N的矩阵A,Ai,j=i+j,Q次操作,每次分两种,R r取出第r行还未被取的所有数,并输出和.C c取出第c列还未被取出的所有数并输出和. 题目思路: [模拟] 首先Ai,j=i+j这个很关键.预处理每一行(=列)的值. 只要记录当前取得时候前面已经取过的所有行数的和.次数,所有列数的和.次数,就能推算出这次取数会少掉多少值. 并记录这一行或这一列被取过没有. // //by coolxxx //…
Gym - 101667H:https://vjudge.net/problem/Gym-101667H 参考:https://blog.csdn.net/weixin_37517391/article/details/80154299 题意: 已知两个人出剪刀石头布的顺序,第二个人可以选择从第一个人的任意手开始正式比赛,问第二个人赢得个数最多是多少. 思路: 首先肯定要把第二个人所代表的字符串T转化为对应能赢的字符串rT.这时候暴力的话就是把rT拿去和第一个人的字符串匹配. 这里就可以用FFT…
Problem J. TriatripTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/attachments Description The travel agency “Four Russians” is offering the new service for their clients. Unlike other agencies that only suggest one-way…
题意:给定几个圆,求最短的围合,把这几个包围起来,而且到圆的距离都不小于10. 思路:把每个圆的半径+10,边等分5000份,然后求凸包即可. #include<bits/stdc++.h> using namespace std; #define mp make_pair typedef long long ll; const double inf=1e200; ; *atan(1.0); :(x<?-:);} struct point{ double x,y; point(,):x(…
题意:给你一个序列,和标准序列连线,求交点数. 题解:就是求逆序对个数,用树状数组优化就行了.具体过程就是按照顺序往树状数组了插点(根据点的大小),因为第i大的点应该排在第i位,插进去的时候他前面本该是有i-1个点的,如果少了,那么一定就和这个元素构成了逆序对. #include<cstdio> #include<cmath> #include<vector> #include<map> #include<set> #include<alg…
题意:求有向图里面有多少个三元环. 思路:枚举起点A,遍历A可以到的B,然后求C的数量,C的数量位B可以到是地方X集合,和可以到A的地方Y集合的交集(X&Y). B点可以枚举,也可以遍历.(两种都试过,区别不大.) 枚举代码: #include<cstdio> #include<bitset> #include<cstdlib> #include<cstring> #include<iostream> #include<algori…
题目大意: 输入n,q: 矩阵大小为n*n 每个位置的值为该位置的行数+列数 接下来q行 “R m”表示输出第m行的总和并整行消去 “C m”表示输出第m列的总和并整列消去 Sample Input 3 7R 2C 3R 2R 1C 2C 1R 3 Sample Output 121005540   即 3*3的矩阵 2   3   4 | 9 3   4   5 | 12 4   5   6 | 15 9  12 15   R 2 输出12 后 sumr=2,r=1 2   3   4 | 9…