当前位置: 首页 > 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.gsyq.cn/news/198233.html

相关文章:

  • 如何用HTTPX在1秒内发起500+异步请求?工程师必备技能曝光
  • 波兰犹太区纪念:幸存者语音通过AI得以延续
  • 题解:P1310 [NOIP2011 普及组] 表达式的值
  • 停车场空位语音提示:驾驶员快速找到可用车位
  • 日本动漫经典重现:蜡笔小新用AI说普通话
  • 瑞士钟表匠工作室:精细操作伴随专注的低声细语
  • 题解:AT_abc389_c [ABC389C] Snake Queue
  • PyTorch显存占用太高?3个鲜为人知的Python技巧让你效率翻倍
  • 编辑文章 - 题解:CF665D Simple Subset
  • 电力巡检机器人语音报告:野外作业人员实时接收信息
  • 提升PostgreSQL编码效率的利器:pg-aiguide✨
  • 让Claude更聪明,提升效率的秘笈——Agent Skills 开源项目介绍
  • 题解:CF628C Bear and String Distance
  • 没闲着系列 2026 - 1.2 - ukyo-
  • 深度伪造语音防范:如何识别VoxCPM-1.5-TTS生成内容?
  • 罗马斗兽场历史回顾:角斗士入场时的呐喊重现
  • 孔子学院教学辅助:留学生练习汉语发音的好帮手
  • 【高性能Python网络编程】:掌握HTTPX并发控制的3个核心机制
  • 揭秘Transformer模型在Python中的显存瓶颈:如何从16GB减至8GB
  • AI歌手专辑发行:首张完全由机器创作并演唱的唱片
  • 工厂产线状态通报:机器运行异常时自动语音预警
  • 【高效开发必备】:FastAPI中绕过不必要预检请求的3种实战方案
  • Python大模型显存管理实战(从OOM到流畅训练的5个关键步骤)
  • 拍卖会竞价播报:主持人助手实时复述出价金额
  • 数据科学与大数据技术毕业设计最全方向答疑
  • 揭秘Python多模态数据存储瓶颈:3种高性能方案彻底提升IO效率
  • NBA球星采访重播:粉丝选择自己喜欢的解说风格
  • 【AI工程师私藏手册】:Python大模型显存占用分析与极致压缩技术揭秘
  • VoxCPM-1.5-TTS-WEB-UI支持多种语言输入的语音合成测试报告
  • 卢卡斯定理简记