题目大意:

输入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. kafka?kafaka! kafka...

    kafka?kafaka! Kafka... kafka是什么? 答:Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅 ...

  2. c++中创建二维数组的几种方法

    一.用new申请内存空间 int **dp=new int*[n];//动态申请二维数组nxm ;i<n;++i){ dp[i]=new int[m]; } 二.用malloc申请内存空间 ; ...

  3. thinkphp 上传安全

    网站的上传功能也是一个非常容易被攻击的入口,所以对上传功能的安全检查是尤其必要的. 大理石平台支架 系统提供的上传类Think\Upload提供了安全方面的支持,包括对文件后缀.文件类型.文件大小以及 ...

  4. 关于移动端使用swiper做图片文字轮播的思考

    最近做移动端网页的时候,需要在首页添加一个公告的模块,用来轮播公告消息标题并且能链接到相应的详情页面,最开始用的是swiper插件,在安卓上测试完全没有问题,但是在苹果机上就没有那么灵敏了,来回切换首 ...

  5. 牛客多校第八场 G Gemstones 栈/贪心

    题意: 对于一个序列,把可以把连着三个相同的字母拿走,问最多拿走多少组. 题解: 直接模拟栈,三个栈顶元素相同则答案+1,并弹出栈 #include<bits/stdc++.h> usin ...

  6. webAPI(DOM) 2.1 获取页面元素 | 事件1 | 属性操作 | 节点 | 创建元素 | 事件2

    js分三个部分: ECMAScript标准:js的基本语法 DOM:Ducument Object Model--->文档对象模型--->操作页面的元素 BOM:Browser Objec ...

  7. 分享一套高级Java笔试题(实拍高清图)

    分享一套高级Java笔试题 微信群里群友分享的 刚好他在笔试 有些问题不会发到群里求助 如果你最近正好在面试 需要参考需要提升 这套试题或许对你有用 下面是部分分享原图 下面是微信群中群友的热议 非常 ...

  8. C++之数据类型--整形&sizeof关键字

    数据类型: C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存 整型 **作用**:整型变量表示的是==整数类型==的数据 C++中能够表示整型的类型有以下几种方式 ...

  9. jQuery post使用变量作参数名

    jQuery Query Post使用方法: $.post("test.php", { name: "John", time: "2pm" ...

  10. OC中Nil nil NULL 和 [NSNULL null]的区别

    关于这个问题看过两三次了,但是每次过两个月脑袋里又会不清晰,索性记录一下加深一下印象. 一.nil 当一个对象置为nil时,这个对象的内存地址就会被系统收回.置空之后是不能进行retain,copy等 ...