题解被锁定,所以我只好把双队列的做法发在讨论区

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

%%%
by wjy666 @ 2017-07-05 20:46:58


@ ylsoi 然而并没有锁定...
by 6QWQ6 @ 2017-07-11 11:25:29


必须%
by XiaoDiandong @ 2017-07-11 14:53:49


楼主+1 写一个我的链表题解 ```cpp #include<iostream> #include<algorithm> using namespace std; unsigned long long sum=0; int n, b, a[10001], k; int main(){ struct node{ int data; node *next; }*head, *p, *q; cin >> n; for (int i=1;i<=n;i++) cin >> a[i]; sort(a+1,a+n+1); //for (int i=1;i<=n;i++) // cout << a[i] << ' '; head=new node; head->data=0; p=head; for (int i=1;i<=n;i++){ q=new node; q->data=a[i]; p->next=q; p=q; } p->next=head; for (int i=1;i<n;i++){ p=head; k=p->next->data+p->next->next->data; sum+=k; p->next=p->next->next->next; while (p->next->data<k && p->next!=head) p=p->next; q=new node; q->data=k; q->next=p->next; p->next=q; } cout << sum; return 0; } ```
by wxl12 @ 2017-07-11 16:15:42


%%%%%%%%%%%%%%%%%%%
by 昆仑龙鹫 @ 2017-07-17 20:19:37


|