1 条题解
-
0
C :
#include<stdio.h> int main(){ int x[30005],b[30005]={0},i,j,n,m1,m2,j1,j2,sum=0; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&x[i]); for(j=1;j<n;j++){ m1=m2=1000000000;j1=j2=0; for(i=0;i<n;i++) if(b[i]==1)continue; else if(x[i]<m1) { if(x[i]<m2){m1=m2;j1=j2;m2=x[i];j2=i;} else{m1=x[i];j1=i;} } x[j2]=x[j1]+x[j2]; sum+=x[j2]; b[j1]=1; } printf("%d\n",sum); return 0; }
C++ :
#include<cstdio> #include<iostream> #include<cstring> #include<queue> using namespace std; priority_queue <int> que; int main() { int n; scanf("%d",&n); for(int i=0,x;i<n;++i) { scanf("%d",&x); que.push(-x); } int ans=0; for(int i=1,tmp;i<n;++i) { tmp=que.top(); ans-=que.top(); que.pop(); tmp+=que.top(); ans-=que.top(); que.pop(); que.push(tmp); } cout<<ans<<endl; return 0; }
- 1
信息
- ID
- 397
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者