国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

BZOJ1029: [JSOI2007]建筑搶修

2019-11-06 06:25:30
字體:
來源:轉載
供稿:網友

和poi某題題意化簡后一樣

經典貪心:維護一個大根堆,按T2從小到大,對于每個建筑,若能修好就將它塞進堆里,若不行,和堆頂比一下大小,比堆頂小就把堆頂pop出去把它塞進去

code:

#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<string>#include<vector>#include<cstdio>#include<cstdlib>#include<cstring>#include<climits>#include<complex>#include<iostream>#include<algorithm>#define ll long longusing namespace std;void read(ll &x){ char c; while(!((c=getchar())>='0'&&c<='9')); x=c-'0'; while((c=getchar())>='0'&&c<='9') x=(x<<3)+(x<<1)+c-'0';}const int maxn = 310000;struct hea{ ll c; int lc,rc,dist;}tr[maxn]; int tot;int n,rt;struct node{ ll a,b;}a[maxn];bool cmp(node x,node y){ return x.b<y.b; }int newnode(ll c){ tot++; tr[tot].c=c; tr[tot].lc=tr[tot].rc=tr[tot].dist=0; return tot;}int merge(int x,int y){ if(!x||!y) return x|y; if(tr[x].c<tr[y].c) swap(x,y); int k=merge(tr[x].rc,y); if(tr[tr[x].lc].dist<=tr[k].dist) swap(tr[x].lc,k); tr[x].rc=k; tr[x].dist=tr[tr[x].lc].dist+1; return x;}int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) { ll x,y; read(x); read(y); a[i].a=x; a[i].b=y; } sort(a+1,a+n+1,cmp); ll k=0; rt=0; int ans=0; for(int i=1;i<=n;i++) { if(k+a[i].a>a[i].b) { if(tr[rt].c>a[i].a) { k=k-tr[rt].c+a[i].a; rt=merge(tr[rt].lc,tr[rt].rc); rt=merge(rt,newnode(a[i].a)); } } else ans++,k+=a[i].a,rt=merge(rt,newnode(a[i].a)); }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 六枝特区| 香格里拉县| 固始县| 福州市| 固始县| 芦溪县| 汝城县| 宁乡县| 大渡口区| 民丰县| 图片| 乡宁县| 响水县| 黔东| 丰原市| 景洪市| 陇西县| 嘉义县| 八宿县| 江阴市| 江陵县| 含山县| 滨海县| 南平市| 民权县| 即墨市| 定兴县| 辽中县| 镶黄旗| 玉龙| 尤溪县| 陇川县| 灵台县| 武陟县| 阿克苏市| 台东县| 扎赉特旗| 类乌齐县| 永昌县| 苏尼特左旗| 安溪县|