[Codeforces Gym100851A] Adjustment Office (脑洞)
来源:互联网 发布:知乎 口才培训 编辑:程序博客网 时间:2024/06/06 00:32
Codeforces - Gym100851A (NEERC15 - A)
给一个
N×N 的格子,位于格子有一个权值,为x+y
询问Q 次,询问一行或者一列的权值和,然后清空这一行或这一列
其中N<=106 ,Q<=105
由于每次都会清空,所以一个点的权值只会被加一次
并且权值的分布相当有规律
所以只要统计一下哪些行、哪些列被询问过了
以后询问的时候,先加上所有权值,再减去哪些被询问过的位置的权值
总的时间复杂度是
#pragma comment(linker, "/STACK:102400000,102400000")#include <cstdio>#include <iostream>#include <cstdlib>#include <cstring>#include <algorithm>#include <cmath>#include <cctype>#include <map>#include <set>#include <queue>#include <bitset>#include <string>#include <complex>using namespace std;typedef pair<int,int> Pii;typedef long long LL;typedef unsigned long long ULL;typedef double DBL;typedef long double LDBL;#define MST(a,b) memset(a,b,sizeof(a))#define CLR(a) MST(a,0)#define SQR(a) ((a)*(a))#define PCUT puts("\n----------")const int maxn=1e6+10;int N,Q;bool qx[maxn], qy[maxn];int main(){ #ifdef LOCAL freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout); #endif #ifndef LOCAL freopen("adjustment.in", "r", stdin); freopen("adjustment.out", "w", stdout); #endif while(~scanf("%d%d", &N, &Q)) { CLR(qx); CLR(qy); char opt; int p; LL rsum=0, csum=0, rcnt=0, ccnt=0; for(int i=0; i<Q; i++) { scanf(" %c%d", &opt, &p); if(opt=='R') { if(qx[p]) puts("0"); else { rcnt++; rsum+=p; qx[p]=1; printf("%lld\n", (LL)p*N + (LL)N*(N+1)/2 - (LL)ccnt*p - csum); } } else { if(qy[p]) puts("0"); else { ccnt++; csum+=p; qy[p]=1; printf("%lld\n", (LL)p*N + (LL)N*(N+1)/2 - (LL)rcnt*p - rsum); } } } } return 0;}
0 0
- [Codeforces Gym100851A] Adjustment Office (脑洞)
- Adjustment Office Gym100851A
- Gym 100851A - Adjustment Office(模拟)
- 【模拟】NEERC15 A Adjustment Office (Codeforces GYM 100851)
- GTK+中调整对象(Adjustment)使用说明
- OpenCV实现SfM(四):Bundle Adjustment
- Codeforces #6B. President's Office (DFS)
- Codeforces D. Office Keys 贪心(待证)
- Codeforces Round #424 D. Office Keys(二分)
- Codeforces Round #424 (Div. 2) D. Office Keys(dp)
- CodeForces 831D Office Keys
- Codeforces 831 D Office Keys
- codeforces 831D Office Keys
- 【CodeForces 830A】Office Keys
- ArcGIS 空间校正(spatial adjustment)使用方法心得
- 关于sba(sparse bundle adjustment)的30个常见问题
- (转载)windows下 Sparse Bundle Adjustment 编译问题
- 关于sba(sparse bundle adjustment)的30个常见问题
- 【杭电oj2087】剪花布条
- Merge Two Sorted Lists_Leetcode_#21
- 开发小技巧2
- C语言7
- 51nod 编辑距离 (DP)
- [Codeforces Gym100851A] Adjustment Office (脑洞)
- Pyhton学习笔记——filter
- 【树1】重建二叉树
- Nginx服务器初识:Nginx启动、停止与信号控制
- leetcode:Combination Sum(I,II)
- linux nohup
- PAT乙级(Basic Level)1026(C++)
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 塔罗卡牌:愚人