1691: [Usaco2007 Dec]挑剔的美食家
2013-03-18 17:26
218 查看
var nnn,root,xx,nn,n,m,i,j:longint;ans:int64; l,r,size,a,an,bn,am,bm:array[1..100000]of longint; function new(x:longint):longint; begin inc(nn); size[nn]:=1;a[nn]:=x; exit(nn); end; procedure insert(var t,x:longint); begin if t=0 then begin t:=new(x); exit; end; inc(size[t]); if x<a[t] then insert(l[t],x) else insert(r[t],x); end; function search(t,x:longint):longint; begin search:=0; while t<>0 do begin if (a[t]<=x)and(a[t]>search) then search:=a[t]; if x<a[t] then t:=l[t] else t:=r[t]; end; end; function delete(var t:longint; x:longint):longint; var rr,k:longint; begin dec(size[t]); if (x=a[t])or((x<a[t])and(l[t]=0))or((x>a[t])and(r[t]=0)) then begin rr:=a[t]; if (l[t]=0)or(r[t]=0) then t:=l[t]+r[t] else a[t]:=delete(l[t],a[t]+1); exit(rr); end else if a[t]>x then exit(delete(l[t],x)) else exit(delete(r[t],x)); end; procedure sort1(l,r: longint); var i,j,xx,yy: longint; begin i:=l; j:=r; xx:=an[(l+r) div 2]; repeat while an[i]<xx do inc(i); while xx<an[j] do dec(j); if not(i>j) then begin yy:=an[i]; an[i]:=an[j]; an[j]:=yy; yy:=bn[i]; bn[i]:=bn[j]; bn[j]:=yy; inc(i); j:=j-1; end; until i>j; if l<j then sort1(l,j); if i<r then sort1(i,r); end; procedure sort2(l,r: longint); var i,j,xx,yy: longint; begin i:=l; j:=r; xx:=am[(l+r) div 2]; repeat while am[i]<xx do inc(i); while xx<am[j] do dec(j); if not(i>j) then begin yy:=am[i]; am[i]:=am[j]; am[j]:=yy; yy:=bm[i]; bm[i]:=bm[j]; bm[j]:=yy; inc(i); j:=j-1; end; until i>j; if l<j then sort2(l,j); if i<r then sort2(i,r); end; begin readln(n,m); for i:=1 to n do readln(an[i],bn[i]); for i:=1 to m do readln(am[i],bm[i]); sort1(1,n);sort2(1,m); j:=1; for i:=1 to m do begin if nnn>n then break; while (an[j]<=am[i])and(j<=n) do begin insert(root,bn[j]); inc(j); end; xx:=search(root,bm[i]); if xx<>0 then begin inc(nnn); ans:=ans+am[i]; delete(root,xx); end; end; writeln(ans); end.
相关文章推荐
- bzoj1691 [Usaco2007 Dec]挑剔的美食家(treap)
- BZOJ 1691: [Usaco2007 Dec]挑剔的美食家 set
- BZOJ1691 [Usaco2007 Dec]挑剔的美食家
- BZOJ 1691 [Usaco2007 Dec]挑剔的美食家 贪心+treap
- BZOJ1691: [Usaco2007 Dec]挑剔的美食家
- bzoj 1691: [Usaco2007 Dec]挑剔的美食家
- bzoj1691 [Usaco2007 Dec]挑剔的美食家 treap+贪心
- bzoj1691 [Usaco2007 Dec]挑剔的美食家
- BZOJ_1691_[Usaco2007 Dec]挑剔的美食家_贪心
- BZOJ 1691 [Usaco2007 Dec]挑剔的美食家
- 1691: [Usaco2007 Dec]挑剔的美食家
- 【BZOJ 1691】[Usaco2007 Dec]挑剔的美食家 treap+贪心
- BZOJ 1691: [Usaco2007 Dec]挑剔的美食家 [treap 贪心]
- BZOJ 1691: [Usaco2007 Dec]挑剔的美食家( 平衡树 )
- bzoj 1691: [Usaco2007 Dec]挑剔的美食家【贪心+splay】
- 【贪心】【二维偏序】【权值分块】bzoj1691 [Usaco2007 Dec]挑剔的美食家
- 【贪心+Treap】BZOJ1691-[Usaco2007 Dec]挑剔的美食家
- BZOJ1691: [Usaco2007 Dec]挑剔的美食家
- BZOJ 1691: [Usaco2007 Dec]挑剔的美食家 贪心 treap
- 【BZOJ】1691: [Usaco2007 Dec]挑剔的美食家