题目大意:

输入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. 「题解」:x

    问题 A: x 时间限制: 1 Sec  内存限制: 256 MB 题面 题面谢绝公开. 题解 赛时想到了正解并且对拍了很久.对拍没挂,但是评测姬表示我w0了……一脸懵逼. 不难证明,如果对于两个数字 ...

  2. bzoj1005题解

    [解题思路] 引理:Prufer编码 定义:不断删除树中度数为1的最小序号的点,并输出与其相连的节点的序号,直至树中只有两个节点,所得输出序列即为Prufer编码. 性质:任意一棵n节点的树都可以用长 ...

  3. 2019hdu第二场

    10:签到求n!取模 #include <iostream> #include <iterator> #include <algorithm> typedef lo ...

  4. C语言itoa()函数和atoi()函数详解(整数转字符C实现)【转载】

    文章转载自https://www.cnblogs.com/bluestorm/p/3168719.html   C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串. ...

  5. 高可用开源方案Heartbeat vs Keepalived

    转:http://www.kuqin.com/shuoit/20140623/340745.html 最近因为项目需要,简单的试用了两款高可用开源方案:Keepalived和Heartbeat.两者都 ...

  6. CSS3:CSS3 简介

    ylbtech-CSS3:CSS3 简介 1.返回顶部 1. CSS3 简介 对CSS3已完全向后兼容,所以你就不必改变现有的设计.浏览器将永远支持CSS2. CSS3 模块 CSS3被拆分为&quo ...

  7. AtCoder ABC 128F Frog Jump

    题目链接:https://atcoder.jp/contests/abc128/tasks/abc128_f 题目大意 给定长度为 N 的序列$s_0, s_1, \dots, s_{N-1}$,现在 ...

  8. [00]APUE:GCC / GDB / Makefile

    http://blog.csdn.net/haoel/article/category/9197 http://blog.csdn.net/haoel/article/details/2886  生成 ...

  9. 第一章:Lambda表达式入门概念

    要点:将行为像数据一样传递. 一.几种形式 1.没有参数,用()表示 () ->System.out.println("Hello World"); 2.有且仅有一个参数,省 ...

  10. 对Springdata模块的简单理解

    有关于Spring对数据库的操作属于为Spring中的Springdata模块,对数据库的操作.Spring对JDBC和Mybatis都有封装与简化 可以从以下角度学习研究 SpringData: 1 ...