题目链接

https://atcoder.jp/contests/agc017/tasks/agc017_c

题解

很久前不会做看了题解,现在又看了一下,只想说,这种智商题真的杀我。。。
转化成如果现在有\(x\)个\(y\), 我们给区间\([y-x+1,y]\)都\(+1\),那么答案就是区间内\(0\)的个数。。
于是就很好\(O(n)\)维护了。。然而我真的想不到。。。

代码

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#define llong long long
#define ldouble long double
#define uint unsigned int
#define ullong unsigned long long
#define udouble unsigned double
#define uldouble unsigned long double
#define modinc(x) {if(x>=P) x-=P;}
#define pii pair<int,int>
#define piii pair<pair<int,int>,int>
#define piiii pair<pair<int,int>,pair<int,int> >
#define pli pair<llong,int>
#define pll pair<llong,llong>
#define Memset(a,x) {memset(a,x,sizeof(a));}
using namespace std;const int N = 2e5;
int cnt[N+2];
int a[N+2];
int num[N+2];
int n,q,ans;int main()
{scanf("%d%d",&n,&q);for(int i=1; i<=n; i++) {scanf("%d",&a[i]); cnt[a[i]]++;}for(int i=1; i<=n; i++){for(int j=max(i-cnt[i]+1,0); j<=i; j++) num[j]++;}for(int i=1; i<=n; i++) if(num[i]==0) ans++;for(int i=1; i<=q; i++){int x,y; scanf("%d%d",&x,&y);cnt[a[x]]--; if(a[x]-cnt[a[x]]>0) {num[a[x]-cnt[a[x]]]--; if(num[a[x]-cnt[a[x]]]==0) ans++;}a[x] = y;if(y-cnt[y]>0) {if(num[y-cnt[y]]==0) ans--; num[y-cnt[y]]++;} cnt[y]++;printf("%d\n",ans);}return 0;
}

AtCoder AGC017C Snuke and Spells相关推荐

  1. AtCoder AGC031E Snuke the Phantom Thief (费用流)

    题目链接 https://atcoder.jp/contests/agc031/tasks/agc031_e 题解 做法一(我的做法) 这是我yy出来的一个上下界费用流做法,自己没找到什么反例,能过. ...

  2. 【AtCoder 2069】Snuke's Subway Trip(构图方法)

    题目链接:[AtCoder 2069]Snuke's Subway Trip 题目大意:有 n n n个节点,m" role="presentation" style=& ...

  3. AtCoder Grand Contest 017

    AtCoder Grand Contest 017 A - Biscuits 有\(n\)个数,问有多少个集合的数的和模\(2\)余\(P\). 随便\(dp\)一下就好了. #include< ...

  4. 【AtCoder】AGC017

    A - Biscuits dp[i][0/1]表示当前和是偶数还是奇数,直接转移即可 #include <bits/stdc++.h> #define fi first #define s ...

  5. AtCoder 杂题训练

    前言: 因为要普及了,今年没一等就可以退役去学文化课了,所以暑假把历年noip普及组都刷了一遍,离noip还有50+天,想弄点强化训练什么的. 想了想,就这些天学文化课之余有空就把AtCoder之前那 ...

  6. AtCoder Regular Contest 061 E - Snuke‘s Subway Trip(建图 + dijkstra最短路 / 0/1bfs / 并查集)

    AtCoder Regular Contest 061 E - Snuke's Subway Trip problem 洛谷翻译 my idea 最近一直在做网络流,所以一读这题后,我就想到了最小费用 ...

  7. AtCoder 2068 すぬけ君の塗り絵 / Snuke's Coloring

    AtCoder 2068 すぬけ君の塗り絵 / Snuke's Coloring Problem Statement We have a grid with H rows and W columns. ...

  8. すぬけ君の塗り絵 2 イージー / Snuke's Coloring 2 (ABC Edit) AtCoder - 2145

    这个题就是典型的想出轮廓后,然后再具体分类,弄出各种情况 其中发现了一个新的地方,之前是要记得每次循环更新数据,这次更新数据是要判断是否更新后,然后再更新(其实就可以用max与min函数) #incl ...

  9. 【每日亿题#12】AtCoder Grand Contest 021 (A ~ F)全部题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 文章目录 AtCoder Grand Contest 021 题解 A. Digit Sum 2 B. ...

最新文章

  1. CSCNN:新一代京东电商广告排序模型
  2. 设计模式---原型模式(Prototype Pattern)
  3. HDU1029 - Ignatius and the Princess IV【水题】
  4. 北京python培训班价格-北京python培训一对一
  5. halcon知识:对空图像的系列操作
  6. 可观测性与原生云监控
  7. c# winform 点击按钮切换tabcontrol标签
  8. C语言宏定义中#define中的井号#的使用
  9. 数据库系统教程-面试汇总-合集
  10. python打包生成so文件
  11. 高级售后客户服务处理专员题库
  12. 桌面窗口管理器占用过高解决办法
  13. 地铁7号线路图_成都地铁7号线线路图_运营时间票价站点_查询下载
  14. 计算两个经纬度点之间的距离
  15. 单片机实现模块化编程:思维+实例+系统教程(实用程度令人发指)
  16. 华硕 ROG主题 提取主题包
  17. foxmail导入outlook部分邮件
  18. 如何看待为了进 Google、微软等外企大量刷题?
  19. 真不戳,基于C++泛型编程的职工管理系统
  20. 关于java获取本地ip的几种方法

热门文章

  1. [蓝桥小记]蓝桥杯参赛经历分享
  2. 浙大python判断两个字符串是否为变位词_python数据结构与算法 变位词
  3. NHibernate快速起步
  4. DEPHI中tform类的构造函数与FORMCREATE的关系
  5. 让delphi2010操作界面回到delphi7模式
  6. visual c++ 部分窗口样式设置
  7. python——输入输出
  8. [编程题]数字分类 (20)
  9. Problem G: 部分复制字符串
  10. Struts2学习总结三