洛谷P1973 [NOI2011]Noi嘉年华(决策单调性)
2018-08-28 20:25
309 查看
传送门
鉴于FlashHu大佬讲的这么好(而且我根本不会)我就不再讲一遍了->传送
鉴于FlashHu大佬讲的这么好(而且我根本不会)我就不再讲一遍了->传送
//minamoto #include<iostream> #include<cstdio> #include<algorithm> #define upd(A,L,R) {cmax(A[i][j],A[k][j]+tot[L][R]);\ if(j>=tot[L][R]) cmax(A[i][j],A[k][j-tot[L][R]]);} #define calc(y) min(x+tot[l][r]+y,Pre[l][x]+suf[r][y]) using namespace std; #define getc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++) char buf[1<<21],*p1=buf,*p2=buf; template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,1:0;} template<class T>inline int min(T&a,T&b){return a<b?a:b;} inline int read(){ #define num ch-'0' char ch;bool flag=0;int res; while(!isdigit(ch=getc())) (ch=='-')&&(flag=true); for(res=num;isdigit(ch=getc());res=res*10+num); (flag)&&(res=-res); #undef num return res; } char sr[1<<21],z[20];int C=-1,Z; inline void Ot(){fwrite(sr,1,C+1,stdout),C=-1;} inline void print(int x){ if(C>1<<20)Ot();if(x<0)sr[++C]=45,x=-x; while(z[++Z]=x%10+48,x/=10); while(sr[++C]=z[Z],--Z);sr[++C]='\n'; } const int N=205,M=405,inf=0x3f3f3f3f; int s ,t ,b[M],tot[M][M],Pre[M] ,suf[M] ,f[M][M]; int main(){ //freopen("testdata.in","r",stdin); int n=read(),m=0,ans; for(int i=1;i<=n;++i){ b[++m]=s[i]=read(); b[++m]=t[i]=read()+s[i]; } sort(b+1,b+1+m); m=unique(b+1,b+1+m)-b-1; for(int i=1;i<=n;++i){ s[i]=lower_bound(b+1,b+1+m,s[i])-b; t[i]=lower_bound(b+1,b+1+m,t[i])-b; for(int l=1;l<=s[i];++l) for(int r=m;r>=t[i];--r) ++tot[l][r]; } for(int i=1;i<=m;++i) for(int j=1;j<=n;++j) Pre[i][j]=suf[i][j]=-inf; for(int i=1;i<=m;++i) for(int j=0;j<=tot[1][i];++j) for(int k=1;k<=i;++k) upd(Pre,k,i); for(int i=m;i;--i) for(int j=0;j<=tot[i][m];++j) for(int k=i;k<=m;++k) upd(suf,i,k); for(int l=1;l<=m;++l) for(int r=l+1;r<=m;++r) for(int y=n,x=0;x<=n;++x){ int p0=calc(y),p1; while(y&&p0<=(p1=calc(y-1))) p0=p1,--y; cmax(f[l][r],p0); } ans=0; for(int j=1;j<=n;++j) cmax(ans,min(Pre[m][j],j)); print(ans); for(int i=1;i<=n;++i){ ans=0; for(int l=1;l<=s[i];++l) for(int r=m;r>=t[i];--r) cmax(ans,f[l][r]); print(ans); } Ot(); return 0; }
相关文章推荐
- 洛谷P1973 [NOI2011]Noi嘉年华(动态规划,决策单调性)
- [NOI2011]Noi嘉年华(动态规划及单调性优化)
- 洛谷P3515 [POI2011]Lightning Conductor(决策单调性)
- ★【动态规划】【单调性优化】【NOI2011】NOI嘉年华
- bzoj 2216: [Poi2011]Lightning Conductor 决策单调性+cdq分治
- 洛谷 P1949 聪明的打字员 [NOI导刊2011提高(10)] (bfs+剪枝)
- 【AC自动机】【树状数组】【dfs序】洛谷 P2414 [NOI2011]阿狸的打字机 题解
- bzoj 2216: [Poi2011]Lightning Conductor(DP决策单调性)
- 2436: [Noi2011]Noi嘉年华 - BZOJ
- bzoj 2216: [Poi2011]Lightning Conductor【决策单调性dp+分治】
- 洛谷P1912 [NOI2009]诗人小G(决策单调性)
- 【bzoj 2436】[Noi2011] Noi嘉年华 (dp)
- bzoj 4709: [Jsoi2011]柠檬(分段DP+决策单调性)
- 【DP】[NOI2011]NOI 嘉年华
- [BZOJ2216][Poi2011]Lightning Conductor(dp+决策单调性)
- 洛谷P3515 [POI2011]Lightning Conductor(动态规划,决策单调性,单调队列)
- 决策单调性Ⅰ:四边形不等式(bzoj 1563: [NOI2009]诗人小G)
- [BZOJ2436][Noi2011]Noi嘉年华(dp)
- BZOJ2436: [Noi2011]Noi嘉年华
- [BZOJ]2436 [NOI2011] Noi嘉年华 DP