AtCoder AGC017C Snuke and Spells
题目链接
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相关推荐
- AtCoder AGC031E Snuke the Phantom Thief (费用流)
题目链接 https://atcoder.jp/contests/agc031/tasks/agc031_e 题解 做法一(我的做法) 这是我yy出来的一个上下界费用流做法,自己没找到什么反例,能过. ...
- 【AtCoder 2069】Snuke's Subway Trip(构图方法)
题目链接:[AtCoder 2069]Snuke's Subway Trip 题目大意:有 n n n个节点,m" role="presentation" style=& ...
- AtCoder Grand Contest 017
AtCoder Grand Contest 017 A - Biscuits 有\(n\)个数,问有多少个集合的数的和模\(2\)余\(P\). 随便\(dp\)一下就好了. #include< ...
- 【AtCoder】AGC017
A - Biscuits dp[i][0/1]表示当前和是偶数还是奇数,直接转移即可 #include <bits/stdc++.h> #define fi first #define s ...
- AtCoder 杂题训练
前言: 因为要普及了,今年没一等就可以退役去学文化课了,所以暑假把历年noip普及组都刷了一遍,离noip还有50+天,想弄点强化训练什么的. 想了想,就这些天学文化课之余有空就把AtCoder之前那 ...
- AtCoder Regular Contest 061 E - Snuke‘s Subway Trip(建图 + dijkstra最短路 / 0/1bfs / 并查集)
AtCoder Regular Contest 061 E - Snuke's Subway Trip problem 洛谷翻译 my idea 最近一直在做网络流,所以一读这题后,我就想到了最小费用 ...
- AtCoder 2068 すぬけ君の塗り絵 / Snuke's Coloring
AtCoder 2068 すぬけ君の塗り絵 / Snuke's Coloring Problem Statement We have a grid with H rows and W columns. ...
- すぬけ君の塗り絵 2 イージー / Snuke's Coloring 2 (ABC Edit) AtCoder - 2145
这个题就是典型的想出轮廓后,然后再具体分类,弄出各种情况 其中发现了一个新的地方,之前是要记得每次循环更新数据,这次更新数据是要判断是否更新后,然后再更新(其实就可以用max与min函数) #incl ...
- 【每日亿题#12】AtCoder Grand Contest 021 (A ~ F)全部题解
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 文章目录 AtCoder Grand Contest 021 题解 A. Digit Sum 2 B. ...
最新文章
- CSCNN:新一代京东电商广告排序模型
- 设计模式---原型模式(Prototype Pattern)
- HDU1029 - Ignatius and the Princess IV【水题】
- 北京python培训班价格-北京python培训一对一
- halcon知识:对空图像的系列操作
- 可观测性与原生云监控
- c# winform 点击按钮切换tabcontrol标签
- C语言宏定义中#define中的井号#的使用
- 数据库系统教程-面试汇总-合集
- python打包生成so文件
- 高级售后客户服务处理专员题库
- 桌面窗口管理器占用过高解决办法
- 地铁7号线路图_成都地铁7号线线路图_运营时间票价站点_查询下载
- 计算两个经纬度点之间的距离
- 单片机实现模块化编程:思维+实例+系统教程(实用程度令人发指)
- 华硕 ROG主题 提取主题包
- foxmail导入outlook部分邮件
- 如何看待为了进 Google、微软等外企大量刷题?
- 真不戳,基于C++泛型编程的职工管理系统
- 关于java获取本地ip的几种方法