0昏!!!TAT

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

@[chengzihan620](/user/799098) 处理了 ```get``` 函数的一些问题。不明白的可以私我。 ```cpp #include<bits/stdc++.h> using namespace std; int heap[100001],hsize,sum; void put(int n){ heap[++hsize]=n; int i=hsize; int j=i/2; while(i>1){ if(heap[j]<=heap[i]) break; if(heap[j]>heap[i]) swap(heap[j],heap[i]); i=j; j=i/2; } } int get(){ int n=heap[1]; swap(heap[1],heap[hsize--]); int j=1,i=j*2; while(i<=hsize){ if(heap[i+1]<heap[i]&&i+1<=hsize) i++; if(heap[j]<=heap[i]) break; swap(heap[j],heap[i]); j=i; i=j*2; } return n; } int main(){ int n,tmp; cin>>n; for(int i=1;i<=n;i++){ cin>>tmp; put(tmp); } while(hsize>1){ int x=get(); int y=get(); sum+=x+y; put(x+y); } cout<<sum; return 0; } ```
by ljlbj_fengyuwuzu @ 2023-08-21 12:13:43


@[ljlbj_fengyuwuzu](/user/921114) 谢谢QWQ,我卡了一周了
by chengzihan620 @ 2023-08-21 15:47:57


@[chengzihan620](/user/799098) 不用谢
by ljlbj_fengyuwuzu @ 2023-08-21 15:49:33


|