B. Collecting Game
简单概括
把每个i看成一只怪兽,每只怪兽的初始能量值是
问每只怪兽最多能吃几只怪兽?
事实
1.无论如何,一只怪兽一定能吃掉所有初始值比他小的怪兽。
2.在吃完所有初始值比他小的怪兽后,能量值得到增加,有可能吃掉初始值比他还大的怪兽
3.暴力模拟肯定不行,所以我们要考虑优化
4.如果吃掉了初始值比他还大的怪兽
思路
令
初始值
代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
struct unit
{
ll v;
ll id;
}sc[100005];
bool cmp(unit a,unit b)
{
return a.v<b.v;
}
int main()
{
ll t;
cin>>t;
while(t--)
{
ll n;
cin>>n;
for(ll i=1;i<=n;i++)
{
cin>>sc[i].v;
sc[i].id=i;
}
sort(sc+1,sc+n+1,cmp);
ll sum[100005]={0};
for(int i=1;i<=n;i++)sum[i]=sum[i-1]+sc[i].v;
ll ans[100005]={0};
int cnt=n-1;
for(int i=n;i>=1;i--)
{
if(!(i==n||sum[i]>=sc[i+1].v))cnt=i-1;
ans[sc[i].id]=cnt;
}
for(int i=1;i<=n;i++)printf("%d ",ans[i]);
puts("");
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~