首页 > 代码库 > UVa 10954 Add All 贪心
UVa 10954 Add All 贪心
贪心 每一次取最小的两个数,注意相加的数也要算‘
#include<cstring> #include<iostream> #include<cstdio> #include<algorithm> #include<string> #include<queue> using namespace std; int main() { long long a[5005],i; long long b[5005],n; priority_queue<int> q; while(scanf("%lld",&n)!=EOF,n) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); for(i=1;i<=n;i++) scanf("%lld",&a[i]); for(i=1;i<n;i++){ sort(a+i,a+1+n); /// 每一次都排序 也可以用优先队列 a[i+1]=b[i]=a[i]+a[i+1]; } long long ans=0; for(i=1;i<n;i++) ans+=b[i]; printf("%lld\n",ans); } }
UVa 10954 Add All 贪心
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。