摘要: 约束条件 :f[i]表示前i块石头的能量总和。f[R]-f[L-1]>=Af[R]-f[L-1]<=Bf[i]-f[i-1]<=10000f[i]-f[i-1]>=-10000关于为什么是字典序。。。在网上看到如下:总结了一下,差分约束系统有两个解决方案:1,最短路模型。所有的约束条件都是形如f(X)<=f(Y)+B,B正负不分。这样在有向图中addEdge(Y,X,B)这条边,这样根据最短路求解的性质我们可以得到X的最短路值满足了所有的f(X)<=f(Yi)+Bi,并且使得某个(某些)f(X)=f(Yk)+Bk。本来是f(X)<=f(Yk)+Bk的, 阅读全文
posted @ 2013-02-20 20:39 Missa 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 设a[i] 为第i个营的人数,s[i] = a[1] + a[2] + … + a[i], s[0] = 0 则对于题目 Ci 有: 0 <= s[i] – s[i-1] <= a[i] -----(1) i, j, k有:a[i]+a[i+1]+...a[j]>= s[j] – s[i-1] >= k -----(2) 化为以下四个式子:s[i]-s[i-1]<=a[i] ------>addedge(i-1,i,a[i])s[i-1]-s[i]<=0 --------->addedge(i,i-1,0)s[j]-s[i-1]<=sum[ 阅读全文
posted @ 2013-02-20 15:03 Missa 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 以前用线段树做过这题。dis[i]表示从0->i-1这i个数存在多少个数。则有dis[b+1]-dis[a]>=c;dis[i+1]-dis[i]>=0 && dis[i+1]-dis[i]<=1转换成为:dis[a]-dis[b+1]<=-c;dis[i]-dis[i+1]<=0dis[i+1]-dis[i]<=1建图。dis[en]-dis[st]<=w.View Code 1 // File Name: 1508.cpp 2 // Author: Missa 3 // Created Time: 2013/2/20 星期三 阅读全文
posted @ 2013-02-20 01:58 Missa 阅读(221) 评论(0) 推荐(0) 编辑