D - Coming of Age Celebration (前缀+差分)
1.D - Snaky Walk(BFS)2.E - Takahashi is Slime 2 (优先队列)
3.D - Coming of Age Celebration (前缀+差分)
4.E - Simultaneous Kagamimochi (二分答案+贪心)5.D - Squares in Circle6.D. pigeon swap题目链接: https://atcoder.jp/contests/abc388/tasks/abc388_d
题意:
一共有n个外星人,每当有一个外星人成年后,成年的外星人就要给他一块钱(如果没钱就不给),返回操作后数组
思路:
模拟一下,可以把 数组前面 已经成年的外星人 对下一个刚好要成年的外星人 的钱数贡献 记作前缀信息s,随着数组的遍历(成年外星人每次多一个),s每次++。
如果一个成年外星人兜里钱足够的多,那么他对后面所有的外星人的钱数贡献都是1,是不变的
否则,这个外星人就只能为他后面一部分(直到下标来到 i+1 +钱数)的外星人做出1的贡献,所以可以把位置信息记录下来,等到i碰到了这个位置,说明这个成年外星人对后面未成年外星人钱数做不了贡献了,将s--
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n;
const int maxn=5e5+5;
int arr[maxn];
int suf[maxn];
int s=0;
signed main()
{
ios::sync_with_stdio(false),cin.tie(0);
cin>>n;
for(int i=1;i<=n;i++)cin>>arr[i];
for(int i=1;i<=n;i++)
{
s+=suf[i];
arr[i]+=s;
s++;
if(arr[i]>=n-i)
{
arr[i]-=(n-i);
}else{
suf[i+arr[i]+1]--;
arr[i]=0;
}
cout<<arr[i]<<' ';
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!