题目大意:

输入n,q; 矩阵大小为n*n 每个位置的值为该位置的行数+列数

接下来q行

“R m”表示输出第m行的总和并整行消去

“C m”表示输出第m列的总和并整列消去

Sample Input

3 7
R 2
C 3
R 2
R 1
C 2
C 1
R 3

Sample Output

12
10
0
5
5
4
0

 
即 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
0   0   0 | 0
4   5   6 | 15
6   8  10
C 3 输出10 后 suml=3,l=1
2   3   0 | 9
0   0   0 | 0
4   5   0 | 15
6   8   0
......
可发现在C 3时 时可由15-r*3-sumr得出
因为每个位置对应的值为 行数加列数
则 整列的总和 = 行的总数*列数+行数总和
则整列的值 = 原本的总和 - 消去的行的总数*列数 - 消去的行数总和
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
long long row[],col[];
int main()
{
long long n,q;
while(~scanf("%lld%lld",&n,&q)){
long long sum=n+(n+)*n/;
for(int i=; i<=n; i++)
{
row[i]=col[i]=sum;
sum+=n;
} long long sumc,sumr,l,r,c;
sumc=sumr=c=r=;
char op;
for(int i=; i<=q; i++)
{
scanf(" %c%lld",&op,&l); if(op=='R')
{
if(row[l]==) printf("0\n");
else
{
printf("%lld\n",row[l]-sumc-l*c);
sumr+=l; r++; /// 记录消去的行的 总和 和 数量
row[l]=; /// 标记为已消去的行
}
}
else if(op=='C')
{
if(col[l]==) printf("0\n");
else
{
printf("%lld\n",col[l]-sumr-r*l);
sumc+=l; c++; /// 记录消去的列的 总和 和数量
col[l]=; /// 标记为已消去的列
}
} }
}
return ;
}

NEERC 2015 Adjustment Office /// oj25993的更多相关文章

  1. Gym - 100851A Adjustment Office(O(1)求行列和)

    Adjustment Office Gym - 100851A 2       3       4 3       4       5 4       5       6 n<=10^6,q&l ...

  2. 【暴力】Gym - 100851A - Adjustment Office

    题意:给你一个n*n的矩阵,初始时,(x,y)的值为x+y.可能有两类操作,一类是对某一行求和,并将这一行置零:另一类是对某一列求和,并将这一列置零. 维护四个值:一个是列标号之和,一个是当前存在的列 ...

  3. Gym 100851A Adjustment Office (思维)

    题意:给定一个 n*n 的矩阵,然后有 m 个询问,问你每一行或者每一列总是多少,并把这一行清空. 析:这个题不仔细想想,还真不好想,我们可以根据这个题意,知道每一行或者每一列都可以求和公式来求,然后 ...

  4. 【模拟】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 ...

  5. Windows Server 2016-MS服务器应用程序兼容性列表

    该表罗列支持 Window Server 2016 上安装和功能的 Microsoft 服务器应用程序. 此信息用于快速参考,不用于替代有关单个产品的规格.要求.公告或每个服务器应用程序的常规通信的说 ...

  6. NEERC15

    2015-2016 ACM-ICPC Northeastern European Regional Contest 再开一个新坑吧 目前姿势有限,C.H.I仍然处于弃坑状态 代码戳这里 Problem ...

  7. Gym 100851 题解

    A: Adjustment Office 题意:在一个n*n的矩阵,每个格子的的价值为 (x+y), 现在有操作取一行的值,或者一列的值之后输出这个和, 并且把这些格子上的值归0. 题解:模拟, 分成 ...

  8. Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem K. UTF-8 Decoder 模拟题

    Problem K. UTF-8 Decoder 题目连接: http://opentrains.snarknews.info/~ejudge/team.cgi?SID=c75360ed7f2c702 ...

  9. Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem I. Alien Rectangles 数学

    Problem I. Alien Rectangles 题目连接: http://opentrains.snarknews.info/~ejudge/team.cgi?SID=c75360ed7f2c ...

随机推荐

  1. centos 服务器编译安装apache+php

    1.检查服务器中是否自带httpd,如果/etc/httpd/httpd.conf,说明系统自带httpd服务,需要卸载或关闭服务,不要让他影响到本次安装的服务启动 可以用 service httpd ...

  2. GdiPlus 一个给 Delphi 提供的新的 GDI+ 接口很好用!

    尽管 GDI+ 已经有近 10 年的历史(随 Win2000 推出), 尽管 DirectX 如日中天, 但在 Windows 7 之前的版本下进行 2D 绘图还是离不开它, 微软也没有停止对它的升级 ...

  3. hdu4352-XHXJ's LIS状压DP+数位DP

    (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 题意:传送门  原题目描述在最下面.  在区间内把整数看成一个阿拉伯数字的集合,此集合中最长严格上升子序列的长度为k的个数. 思路: ...

  4. POJ2449-A*算法-第k短路

    (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 题意:传送门  原题目描述在最下面.  给你一个有向图,求指定节点间的第k短路. 思路:  先反向跑出从终点开始的到每个节点的最短距离 ...

  5. Go语言中new()和 make()的区别详解

    概述 Go 语言中的 new 和 make 一直是新手比较容易混淆的东西,咋一看很相似.不过解释两者之间的不同也非常容易. new 的主要特性 首先 new 是内建函数,你可以从 http://gol ...

  6. 【转】Linux(CentOS) vps安装xfce桌面+VNC

    以前我发过一篇文章利用vnc远程连接VPS桌面,其中用到的是kde桌面,后来知道xfce总体来说比kde占得内存还小些,因为xfce轻便.简单,今天因为一些原因需要在我的vps上搭建用户桌面,所以就试 ...

  7. DXP 常用功能

    1. PCB布板篇 t+s: 从原理图对应到pcb图中 F11: 修改顶层,底层信息 v+f: 回到PCB板中 i+l: 放置到画的矩形框内 对齐功能: ctrl + shift + t: 顶部对齐 ...

  8. 如何理解CUDA中的cudaMalloc()的参数

    首先看下此运行时函数的原型: cudaError_t cudaMalloc (void **devPtr, size_t size ); 主要的第一个参数.为什么是两个星星呢?用个例子来说明下. fl ...

  9. python 16 文件操作(二)

    转自 http://www.cnblogs.com/BeginMan/p/3169020.html 一.文件系统 从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进 ...

  10. vue axios简单配置

    参考:https://www.cnblogs.com/sophie_wang/p/7844119.html 1. 安装 npm install axios 2. main.js import axio ...