明明按照《深入浅出》中的代码还是不行

P1090 [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G

@[sd_DJC](/user/767015) 深基那叫参考代码,可能会有些小问题(防止有人全抄),比如 $\geq$ 打成 $\gt$
by small_turtle @ 2023-02-12 16:25:59


@[small_turtle](/user/509525) 所以要怎么改?
by sd_JC @ 2023-02-12 21:48:34


@[sd_DJC](/user/767015) 只用sort不行,要选当前最小的数,所以要用到堆或者优先队列,一个sort是不行的
by Darling_zero_two @ 2023-02-21 17:38:27


@[sd_DJC](/user/767015) #### ACcoder: ``` #include<bits/stdc++.h> using namespace std; priority_queue <int,vector<int>,greater<int> > q; int n,ans=0; int main() { cin>>n; for(int i=0;i<n;i++) { int x; cin>>x; q.push(x); } for(int i=0;i<n-1;i++) { int x,y; x=q.top(); q.pop(); y=q.top(); q.pop(); ans+=x+y; q.push(x+y); } cout<<ans; } ```
by Darling_zero_two @ 2023-02-21 17:39:32


n2都还没初始化呢
by ccisdog @ 2023-02-26 15:12:31


``` #include<bits/stdc++.h> using namespace std; int n,n2,a1[100001],a2[1000001],sum=0; int main() { cin>>n; memset(a1,127,sizeof(a1)); memset(a2,127,sizeof(a2)); for(int i=0;i<=n;i++) cin>>a1[i]; sort(a1,a1+n); int i=0,j=0,k,w; for(k=1;k<n;k++){ w=a1[i]<a2[j]?a1[i++]:a2[j++]; w+=a1[i]<a2[j]?a1[i++]:a2[j++]; a2[n2++]=w; sum+=w; } cout<<sum; } ```
by ninji @ 2023-03-06 12:22:22


AC了
by ninji @ 2023-03-06 12:23:23


你也没有按照书上的来啊,仔细看看你的代码
by I_comeback @ 2023-05-04 15:43:32


|