Gym - 100851A Adjustment Office(O(1)求行列和)
Adjustment Office
2 3 4
3 4 5
4 5 6
n<=10^6,q<=10^5
每个坐标点的值为x+y。
q次查询,每次求某行或某列的和,然后清空。
in out
3 7 12
R 2 10
C 3 0
R 2 5
R 1 5
C 2 4
C 1 0
R 3
#include <bits/stdc++.h>
#define MAX 2000005
typedef long long ll;
using namespace std; int bh[MAX],bl[MAX];
ll pre[MAX];
ll h[MAX],l[MAX];
char s[];
ll vh=,vl=,vhc=,vlc=; void init(){
pre[]=;
for(int i=;i<=;i++){
pre[i]=pre[i-]+i;
}
}
int main(void)
{
freopen("adjustment.in","r",stdin);
freopen("adjustment.out","w",stdout);
init();
int n,q;
ll x;
scanf("%d%d",&n,&q);
for(int i=;i<=n;i++){
h[i]=pre[i+n]-pre[i];
l[i]=pre[i+n]-pre[i];
}
while(q--){
scanf(" %s %I64d",s,&x);
if(s[]=='R'){
if(bh[x]==){
printf("0\n");
continue;
}
bh[x]=;
vh+=x;
vhc++;
ll ans=h[x];
ans-=vlc*x+vl;
printf("%I64d\n",ans);
}
else{
if(bl[x]==){
printf("0\n");
continue;
}
bl[x]=;
vl+=x;
vlc++;
ll ans=l[x];
ans-=vhc*x+vh;
printf("%I64d\n",ans);
}
}
return ;
}
Gym - 100851A Adjustment Office(O(1)求行列和)的更多相关文章
- Gym 100851A Adjustment Office (思维)
题意:给定一个 n*n 的矩阵,然后有 m 个询问,问你每一行或者每一列总是多少,并把这一行清空. 析:这个题不仔细想想,还真不好想,我们可以根据这个题意,知道每一行或者每一列都可以求和公式来求,然后 ...
- 【暴力】Gym - 100851A - Adjustment Office
题意:给你一个n*n的矩阵,初始时,(x,y)的值为x+y.可能有两类操作,一类是对某一行求和,并将这一行置零:另一类是对某一列求和,并将这一列置零. 维护四个值:一个是列标号之和,一个是当前存在的列 ...
- 【模拟】NEERC15 A Adjustment Office (2015-2016 ACM-ICPC)(Codeforces GYM 100851)
题目链接: http://codeforces.com/gym/100851 题目大意: 一个N*N的矩阵A,Ai,j=i+j,Q次操作,每次分两种,R r取出第r行还未被取的所有数,并输出和.C c ...
- Gym - 101667H - Rock Paper Scissors FFT 求区间相同个数
Gym - 101667H:https://vjudge.net/problem/Gym-101667H 参考:https://blog.csdn.net/weixin_37517391/articl ...
- Codeforces Gym 100342J Problem J. Triatrip bitset 求三元环的数量
Problem J. TriatripTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/att ...
- Gym - 101673:B Craters (几何,求凸包)
题意:给定几个圆,求最短的围合,把这几个包围起来,而且到圆的距离都不小于10. 思路:把每个圆的半径+10,边等分5000份,然后求凸包即可. #include<bits/stdc++.h> ...
- CF Gym 100463A (树状数组求逆序数)
题意:给你一个序列,和标准序列连线,求交点数. 题解:就是求逆序对个数,用树状数组优化就行了.具体过程就是按照顺序往树状数组了插点(根据点的大小),因为第i大的点应该排在第i位,插进去的时候他前面本该 ...
- Gym - 100342J:Triatrip(Bitset加速求三元环的数量)
题意:求有向图里面有多少个三元环. 思路:枚举起点A,遍历A可以到的B,然后求C的数量,C的数量位B可以到是地方X集合,和可以到A的地方Y集合的交集(X&Y). B点可以枚举,也可以遍历.(两 ...
- NEERC 2015 Adjustment Office /// oj25993
题目大意: 输入n,q: 矩阵大小为n*n 每个位置的值为该位置的行数+列数 接下来q行 “R m”表示输出第m行的总和并整行消去 “C m”表示输出第m列的总和并整列消去 Sample Input ...
随机推荐
- google guice
1 google guice是什么 google guice是一个轻量的DI容器. 2 guice和spring对比 spring的配置放在xm文件中,guice的配置放在Module中. guice ...
- (转)CentOS 5.5 64bit 编译安装Adobe FlashMediaServer 3.5
http://download.macromedia.com/pub/flashmediaserver/updates/4_0_2/Linux_32bit/FlashMediaServer4.tar. ...
- c# CODE REVIEW (13-11 TO 14-01)
一. 松耦合
- tensorflow 线性回归 iris
线性拟合
- Luke 5—— 可视化 Lucene 索引查看工具,可以查看ES的索引
Luke 5 发布,可视化 Lucene 索引查看工具 oschina 发布于2015年08月31日 这是一个主要版本,该版本支持 Lucene 5.2.0. 它支持 elasticsearch ...
- Mybatis异常_03_Invalid bound statement (not found)
一.异常信息 Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): c ...
- codeforces 659G G. Fence Divercity(dp)
题目链接: G. Fence Divercity time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- linux 进程学习笔记-信号semaphore
信号灯(信号量)不是进程通信手段,其是用于控制和协调在进程间通信过程中的共享资源访问,就如同互斥锁(两者的区别可以参考这里) 可以将简单地将信号灯想象成一个计数器,初始时计数器值为n(有n个资源可供使 ...
- 递归/非递归----python深度遍历二叉树(前序遍历,中序遍历,后序遍历)
递归代码:递归实现很简单 '二叉树结点类' class TreeNode: def __init__(self, x): self.val = x self.left = None self.righ ...
- uC/OS-II源码分析(六)
μC/OS-Ⅱ总是运行进入就绪态任务中优先级最高的那一个.确定哪个任务优先级最高, 下面该哪个任务运行了的工作是由调度器(Scheduler)完成的.任务级的调度是由函数 OSSched()完成的.中 ...