标签:for define min color ret efi int als can
我心里毫无波动甚至还有点想笑。
WTF
WTF
WTF
WTF
WTF
WTF
WTF
GTMD调了一天什么鬼啊。
原来更新的范围有讲究啊。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define inf 1000000007 using namespace std; int n,m,k,x[10050],y[10050],dp1[10050][1050],dp2[10050][1050],ret=0,ans1=0,mx[10050],ans2=inf; struct pnt { int p,l,h; }p[10050]; bool vis[10050][1050]; bool cmp(pnt x,pnt y) { return x.p<y.p; } bool fail_all(int x) { for (int j=1;j<=m;j++) if (dp2[x][j]!=inf) return false; return true; } int main() { scanf("%d%d%d",&n,&m,&k); for (int i=1;i<=n;i++) scanf("%d%d",&x[i-1],&y[i-1]); for (int i=1;i<=k;i++) scanf("%d%d%d",&p[i].p,&p[i].l,&p[i].h); sort(p+1,p+k+1,cmp); for (int i=1;i<=m;i++) vis[0][i]=true; for (int i=1;i<=n;i++) { while ((p[ret+1].p<=i) && (ret<=k-1)) ret++; int l,r; if (p[ret].p==i) {l=p[ret].l+1;r=p[ret].h-1;} else l=0,r=m; int limit=1;if (p[ret].p==i-1) limit=p[ret].l+1; for (int j=1;j<=m;j++) dp2[i][j]=inf; for (int j=1;j<=m-1;j++) { if (((vis[i][j-x[i-1]]) || (vis[i-1][j-x[i-1]])) && (j>x[i-1])) { dp1[i][j]=max(dp1[i-1][j-x[i-1]],dp1[i][j-x[i-1]]); dp2[i][j]=min(dp2[i][j],dp2[i][j-x[i-1]]+1); dp2[i][j]=min(dp2[i][j],dp2[i-1][j-x[i-1]]+1); vis[i][j]=true; } } for (int j=1;j<=m-1;j++) { if ((j+y[i-1]<=m) && (vis[i-1][j+y[i-1]])) { dp1[i][j]=max(dp1[i][j],dp1[i-1][j+y[i-1]]); dp2[i][j]=min(dp2[i][j],dp2[i-1][j+y[i-1]]); vis[i][j]=true; } } for (int j=1;j<=m;j++) { if (vis[i-1][j]) { int ret; dp1[i][m]=max(dp1[i][m],dp1[i-1][j]); if ((m-j)%x[i-1]) ret=(m-j)/x[i-1]+1; else if (m==j) ret=1; else ret=(m-j)/x[i-1]; dp2[i][m]=min(dp2[i][m],dp2[i-1][j]+ret); vis[i][m]=true; } } for (int j=0;j<=l-1;j++) {vis[i][j]=false;dp2[i][j]=inf;} for (int j=r+1;j<=m;j++) {vis[i][j]=false;dp2[i][j]=inf;} for (int j=1;j<=m;j++) if (vis[i][j]) { dp1[i][j]+=(p[ret].p==i); ans1=max(ans1,dp1[i][j]); } if (vis[i][m]) ans1=max(ans1,dp1[i][m]); if (fail_all(i)) { printf("0\n%d\n",ans1); return 0; } } for (int i=0;i<=m;i++) if (vis[n][i]) ans2=min(ans2,dp2[n][i]); printf("1\n%d\n",ans2); return 0; }
标签:for define min color ret efi int als can
原文地址:http://www.cnblogs.com/ziliuziliu/p/6060072.html