当前位置: 首页 > news >正文

题解:AT_abc391_c [ABC391C]

题目大意

\(N\) 只鸽子,编号从 \(1\)\(N\) ,有 \(N\) 个鸽巢,编号从 \(1\)\(N\) 。最初,鸽子 \(i\)\(1\leq i\leq N\) 的巢 \(i\) 中。

您会收到 \(Q\) 个查询,您必须按顺序处理这些查询。查询有两种类型,每种都以下列格式之一给出:

  • 1 P H : 将鸽子 \(P\) 移至鸽巢 \(H\)
  • 2 : 输出包含一只以上鸽子的鸽巢数量。

思路

我们可以用一个数组记录下每个鸟窝的鸟的只数,再记录下来现在每个鸟在那个窝,再记录下来每个窝中是否有一只以上的鸟(注意:在上面这些记录中,是边输入边进行记录)。接着我们看如果这只鸟转过去的那个窝的只数 \(\ge 2\) 且再转过去之前这个窝没有两只鸟,这时我们就让答案加一。我们再看如果这只鸟转过去之前的那个窝如果现在只数 \(\le 1\) 且这个窝原来是有两只鸟的,这时我们就让答案减一。

AC code

#include <bits/stdc++.h>
using namespace std;
#define N 1000010
#define sz(s) s.size()
#define db double
#define mod 1000000007
#define P 998244353
#define ll long long
#define fi first
#define se second
#define pb push_back
#define mk make_pair
#define per(i,l,r) for(ll i=l;i>=r;i--)
#define rep(i,l,r) for(ll i=l;i<=r;i++)
#define in insert
#define y1 y142857
//pair<ll,ll> PII;
//unordered_map<int,int> f;
//vector<int>edges[N];
//set<int>c;
inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();return x*f;
}
inline void write(int x,int w,int e){if(x<0)putchar('-'),x=-x;if(x>9)write(x/10,w,e);putchar(x%10+'0');if(x==e){if(w==1)putchar(' ');if(w==2)putchar('\n');}return;
}
//time: O( )
//memory: ()kb
int n,q,a[N],ans=0,ne[N],b[N];
void sovel(){n=read(),q=read();rep(i,1,n)a[i]=1,b[i]=i;rep(_,1,q){int type=read();if(type==1){int p=read(),h=read();a[b[p]]--;a[h]++;if(a[h]>=2&&!ne[h])ne[h]=1,ans++;if(a[b[p]]<=1&&ne[b[p]])ne[b[p]]=0,ans--;b[p]=h;}else{write(ans,2,ans);}}	
}
int main(){int T=1;//数据组数while(T--)sovel();
}
http://www.jsqmd.com/news/181906/

相关文章:

  • 揭秘Transformer模型在Python中的显存瓶颈:如何从16GB减至8GB
  • 题解:P2672 [NOIP2015 普及组] 推销员
  • 【紧急避坑指南】:NiceGUI输入校验常见错误及修复方案
  • 香港维多利亚港:灯光秀期间新增AI解说服务
  • 如何用Python构建统一多模态数据湖?这套架构已被大厂验证并投产
  • 波兰犹太区纪念:幸存者语音通过AI得以延续
  • imapi2fs.dll文件丢失损坏找不到 打不开程序 免费下载方法
  • 【Linux命令大全】002.文件传输之lpq命令(实操篇)
  • 【高效开发必备】:FastAPI中绕过不必要预检请求的3种实战方案
  • 题解:P1310 [NOIP2011 普及组] 表达式的值
  • 题解:P5017 [NOIP2018 普及组] 摆渡车
  • 跨境电商客服系统:不同国家客户听到本地化语音
  • 从入门到精通:FastAPI处理复杂跨域预检请求的完整路径
  • 【Linux命令大全】002.文件传输之lprm命令(实操篇)
  • 停车场空位语音提示:驾驶员快速找到可用车位
  • 【赵渝强老师】国产金仓数据库的表空间
  • 日本动漫经典重现:蜡笔小新用AI说普通话
  • 【Linux命令大全】002.文件传输之lpr命令(实操篇)
  • 灵遁者:春华秋实年复年,青丝渐成雪满巅
  • 瑞士钟表匠工作室:精细操作伴随专注的低声细语
  • 题解:P2258 [NOIP2014 普及组] 子矩阵
  • 图书馆闭馆提醒:温柔语音取代刺耳铃声
  • 【Asyncio事件触发机制深度解析】:掌握高效异步编程的核心引擎
  • 题解:AT_abc389_c [ABC389C] Snake Queue
  • PyTorch显存占用太高?3个鲜为人知的Python技巧让你效率翻倍
  • DeepMimic: Example-Guided Deep Reinforcement Learning of PhysicsBased Character Skills
  • 文学作品角色演绎:小说中每个人物都有独特声线
  • 矿山安全监控系统:危险区域进入时触发语音警告
  • 军事指挥系统语音输出:保密前提下的高效信息传递
  • 编辑文章 - 题解:CF665D Simple Subset