「题解」:X国的军队
Posted xingmi-weiyouni
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了「题解」:X国的军队相关的知识,希望对你有一定的参考价值。
问题 A: X国的军队
时间限制: 1 Sec 内存限制: 256 MB
题面
题面谢绝公开。
题解
简单贪心。
按照存活的士兵数量(即参加战斗的士兵数量减去阵亡的士兵数量)排序。
若存活士兵数量相同则按照参与战斗的士兵数量排序。
顺序扫一遍统计答案。
#include<bits/stdc++.h> #define int long long #define rint register int #define read(A) A=init() using namespace std; inline int init() int a=0,b=1;char ch=getchar(); while(ch<‘0‘||ch>‘9‘)if(ch==‘-‘)b=-1;ch=getchar(); while(ch>=‘0‘&&ch<=‘9‘)a=(a<<3)+(a<<1)+ch-‘0‘;ch=getchar(); return a*b; int T,n,ans; struct nodeint ds,ns,cs;p[1000005]; inline bool cmp(node A,node B) return (A.cs==B.cs)?A.ns<B.ns:A.cs<B.cs; signed main() // freopen("data.in","r",stdin); // freopen("std.out","w",stdout); read(T); while(T--) read(n);ans=0; for(rint i=1,ind,inn;i<=n;++i) read(ind),read(inn); p[i].ds=ind,p[i].ns=inn; p[i].cs=inn-ind; sort(p+1,p+n+1,cmp);ans=p[1].ns; for(rint i=2;i<=n;++i)ans=max(ans+p[i].ds,p[i].ns); printf("%lld\n",ans);
以上是关于「题解」:X国的军队的主要内容,如果未能解决你的问题,请参考以下文章