2013年8月12日

hdu1529(差分约束)

摘要: num[i]为从i时刻开始工作的人数x[i] 为 i时刻实际工作的人数r[i]为 i 时刻至少需要工作的人数Sn表示1~n这段时间开始工作的员工数每个时刻实际工作人数 x[i] >= 0 , 得 Si - S(i-1) >= 0每个时刻实际工作人数 x[i] = -num[i]在 i(24>=i>=8) 时刻可以工作的人数 为 x[i-7]+x[i-6]+x[i-5]+x[i-4]+x[i-3]+x[i-2]+x[i-1]+x[i] >= r[i] , 得 Si - S(i-8) >= r[i]在i(1= r[i] ,得S(24) + Si - S(i+16 阅读全文

posted @ 2013-08-12 12:16 爱∪ 阅读(260) 评论(0) 推荐(0) 编辑

POJ3169(差分约束)

摘要: 题意:有N头牛,这些牛都拥有一个属性x表示其在坐标轴上的坐标。现在给定ML组约束条件表示A、B两头牛坐标之差不能够超过C;MD组约束条件表示A、B两头牛坐标之差不能小于C,现在问1和N号牛之间最长的距离为多大,如果存在则输出最大长度,如果任意输出-2,如果已知条件存在矛盾输出-1。拿样例来分析4 2 11 3 102 4 202 3 3S3 - S1 = 3 ==> S2 - S3 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define inf 9999999... 阅读全文

posted @ 2013-08-12 00:57 爱∪ 阅读(205) 评论(0) 推荐(0) 编辑

2013年8月11日

ZOJ1455

摘要: 题意:给定N个任务,每个任务有一个完成时间。这些任务之间有完成的四种先后顺序,假设这种二元关系建立在x,y之间: SAS:x至少在y开始时开始 SAF:x至少在y完成时开始 FAS:x至少在y开始时完成 FAF:x至少在y完成时完成 现在问这些任务在最短时间内都被完成的任务安排如何?输出每个任务开始的时刻,如果不能的话输出impossible。最长路做法:虚拟出一个0点,S0 = 0 ; Si - S0 >= 0 ; 建图如下for(int i=1; i 2 #include 3 #include 4 #include 5 #include 6 #include ... 阅读全文

posted @ 2013-08-11 23:27 爱∪ 阅读(163) 评论(0) 推荐(0) 编辑

POJ1364

摘要: 4 21 2 gt 02 2 lt 2if(s[0]=='g') S3-S0>0 S3-S0>=1 S0-S3 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define inf 9999999 9 #define N 10510 #define M 2000011 int dis[N],vis[N],head[N],in[N];12 int size , n ,m ;13 struct Edge14 {15 int v,w,next;16 Edge( 阅读全文

posted @ 2013-08-11 11:54 爱∪ 阅读(170) 评论(0) 推荐(0) 编辑

2013年8月10日

POJ1201(差分约束)

摘要: Sn表示集合Z中小于等于i的元素个数53 7 38 10 36 8 11 3 110 11 11.Z集合中范围在[ai,bi]的整数个数 S[bi] - S[ai - 1] 至少为 Ci,得不等式S2 - S7 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 50005 9 #define M 15000510 #define inf 999999911 int dis[N],head[N],vis[N],in[N];12 int n,size,max... 阅读全文

posted @ 2013-08-10 23:56 爱∪ 阅读(219) 评论(0) 推荐(0) 编辑

ZOJ2770(差分约束系统学习)

摘要: Sn代表前n个军营的总人数3 21000 2000 10001 2 11002 3 13001.每个兵营实际人数不能超过其容量,得到下面不等式S1 - S0 = M , 转化为 S0 - S3 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define inf 9999999 8 #define N 1005 9 #define M 2300010 int n,m,size;11 int c[N],dis[N],d[N];12 struct Edge13 {14 int u,v,w;... 阅读全文

posted @ 2013-08-10 23:05 爱∪ 阅读(308) 评论(0) 推荐(0) 编辑

2013年8月9日

POJ1125 ZOJ1082

摘要: 题意:有N个股票经济人可以互相传递消息,他们之间存在一些单向的通信路径。现在有一个消息要由某个人开始传递给其他所有人,问应该由哪一个人来传递,才能在最短时间内 让所有人都接收到消息。若不存在这样一个人,则输出disjoint 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define inf 9999999 8 #define N 105 9 int n,map[N][N];10 11 void Floyd()//Floyd算每两个点之间的距离 12 {13 f... 阅读全文

posted @ 2013-08-09 11:42 爱∪ 阅读(167) 评论(0) 推荐(0) 编辑

ZOJ2027

摘要: 题意:一个人要去旅行 给你起点和终点 求最少花费 其中花费为经过路径的总费用减去该路径的中的最大花费 ,Floyd 变型 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define inf 9999999 9 #define N 20510 int n,m,sum[N][N],maxcost[N][N];11 map mp; //map映射 12 13 void Floyd() //Floyd变型 14 {15 for(int k=0; ... 阅读全文

posted @ 2013-08-09 10:26 爱∪ 阅读(197) 评论(0) 推荐(0) 编辑

POJ2253 ZOJ1942

摘要: 题意:给出一个无向图,求一条0~1的路径使得路径上的最大边权最小. 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define inf 9999999 9 #define N 20510 11 double g[N][N];12 int n;13 struct node14 {15 int x,y;16 }P[N];17 double dis(node a,node b)18 {19 return sqrt(double((a.x... 阅读全文

posted @ 2013-08-09 01:42 爱∪ 阅读(261) 评论(0) 推荐(0) 编辑

POJ2263 ZOJ 1952

摘要: 最短路变型 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 205 9 int g[N][N];10 mapmp; //map映射 11 int n,m;12 13 void Floyd() //最短路变型 14 {15 for(int k=0; k>s1>>s2>>w;48 if(mp.find(s1)==mp.end()) mp[s1] = cnt++;49 u = mp... 阅读全文

posted @ 2013-08-09 00:50 爱∪ 阅读(149) 评论(0) 推荐(0) 编辑

导航