题目链接

第一个差分约束的题目。看了好多的博客,差分约束就是根据不等式建好图,然后求最短路或者最长路即可,很明显建图是关键。

这个题的题意是,给很多的区间,每个区间上至少ci个数,问最这些数最少有多少个。

这个题解讲的不错http://www.cnblogs.com/jiai/archive/2012/09/20/2696007.html

建图的的时候,不等式的方向要全部相同。s[i+1]表示这个集合在[1-i]的个数

s[bi+1] - s[ai] >= ci;//题目中给出

s[i+1] - s[i] >=0;//隐藏条件

s[i] - s[i+1] >= -1;

求s[maxz] - s[minz] >= ans;

建图就是求minz 到maxz的最长路。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cmath>
 4 #include <cstring>
 5 #include <queue>
 6 using namespace std;
 7 #define N 1000001
 8 #define INF 0x7fffff
 9 struct node
10 {
11     int u,v,next,w;
12 }edge[N];
13 int first[N],t,maxz,minz;
14 int in[N],d[N];
15 void CL()
16 {
17     t = 1;
18     memset(first,-1,sizeof(first));
19 }
20 void add(int u,int v,int w)
21 {
22     edge[t].u = u;
23     edge[t].v = v;
24     edge[t].w = w;
25     edge[t].next = first[u];
26     first[u] = t;
27     t ++;
28 }
29  void spfa(int str)//spfa模版
30  {
31      int i,v,u;
32      queue<int> que;
33      for(i = minz;i <= maxz;i ++)
34      {
35          in[i] = 0;
36          d[i] = -INF;
37      }
38      que.push(str);
39      in[str] = 1;
40      d[str] = 0;
41      while(!que.empty())
42      {
43          u = que.front();
44          in[u] = 0;
45          que.pop();
46          for(i = first[u];i != -1;i = edge[i].next)
47          {
48              v = edge[i].v;
49              if(d[v] < d[u]+edge[i].w)
50              {
51                  d[v] = d[u]+edge[i].w;
52                  if(!in[v])
53                  {
54                      in[v] = i;
55                      que.push(v);
56                  }
57              }
58          }
59      }
60  }
61 int main()
62 {
63     int n,i,sv,ev,w;
64     maxz = -1;
65     minz = 50001;
66     CL();
67     scanf("%d",&n);
68     for(i = 1;i <= n;i ++)
69     {
70         scanf("%d%d%d",&sv,&ev,&w);
71         minz = min(sv,minz);
72         maxz = max(ev+1,maxz);
73         add(sv,ev+1,w);//建图
74     }
75     for(i = minz;i <= maxz;i ++)
76     {
77         add(i,i+1,0);//建图
78         add(i+1,i,-1);
79     }
80     spfa(minz);
81     printf("%d\n",d[maxz]);
82     return 0;
83 }

转载于:https://www.cnblogs.com/naix-x/archive/2013/02/21/2920257.html

POJ 1201 Intervals(差分约束)相关推荐

  1. poj 1201 Intervals 差分约束

    真 .读题杀,英文题一脸懵逼,看来以后还要多读读英文题,不过读完了就能发现这其实是一道很裸的差分约束,按照题意建边即可,但还要注意的就是后一个要大于等于前一个,并且每个位置不能超过一个元素.求一边最大 ...

  2. POJ - 1201 Intervals(差分约束+最短路)

    题目链接:点击查看 题目大意:给定n个闭区间[ai,bi]和n个整数ci,你需要构造一个整数集合Z,使得Z中满足所有的ai<=x<=bi的整数不少于ci个,求出这样的整数集合Z最少包含多少 ...

  3. [poj 1364]King[差分约束详解(续篇)][超级源点][SPFA][Bellman-Ford]

    题意 有n个数的序列, 下标为[1.. N ], 限制条件为: 下标从 si 到 si+ni 的项求和 < 或 > ki. 一共有m个限制条件. 问是否存在满足条件的序列. 思路 转化为差 ...

  4. POJ 3159 Candies 差分约束dij

    分析:设每个人的糖果数量是a[i] 最终就是求a[n]-a[1]的最大值 然后给出m个关系 u,v,c 表示a[u]+c>=a[v] 就是a[v]-a[u]<=c 所以对于这种情况,按照u ...

  5. POJ 1201 Intervals (差分约束)

    POJ1716的变形,数据规模增大,用了循环数组. //9063355 NKHelloWorld 1201 Accepted 30788K 469MS C++ 1825B 2011-08-02 19: ...

  6. POJ 1716 Integer Intervals 差分约束

    题目:http://poj.org/problem?id=1716 1 #include <stdio.h> 2 #include <string.h> 3 #include ...

  7. O - Layout POJ - 3169(差分约束)

    O - Layout POJ - 3169 参考 思路: 限制条件 : 最大距离不超过w d[v] - d[u] <= w; 最小距离超过w d[v] - d[u] >= w; 移项得 d ...

  8. poj1201/zoj1508/hdu1384 Intervals(差分约束)

    转载请注明出处: http://www.cnblogs.com/fraud/           --by fraud Intervals Time Limit: 10 Seconds      Me ...

  9. poj-1201 Intervals(差分约束)

    题目链接: Intervals Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 24379   Accepted: 9274 ...

  10. POJ 1932 XYZZY (差分约束+传递闭包)

    题目链接 题意 有NNN个屋子,走进每个屋子血量都会发生改变,开始生命值100100100.问是否可以从111号屋子走到NNN号屋子中间血量保持大于000 思路 按照给定的顺序建图,因为要让血量尽可能 ...

最新文章

  1. 算法导论一个让人很不爽的地方
  2. 两层或以上的showModalDialog解决方法
  3. docker重启容器命令
  4. Python基础01-变量及数据类型
  5. 简易listview与adapter实现列表,ArrayAdapter和BaseAdapter
  6. Category 特性在 iOS 组件化中的应用与管控
  7. 26 Socket Addressing and Client Socket Programming
  8. Android Camera 编程从入门到精通
  9. java布类型的常量,java数据类型;常量与变量;
  10. 一、RabbitMQ安装
  11. JavaScript:加载请求本地资源工具StaticResourceUtil.js
  12. 《yes!产品经理》(上册)读书笔记(完结)
  13. java 的 表格控件_java最强大的表格控件
  14. 苦涩的 高考完了,有没有给自己一个目标
  15. 针对ABCmouse的Xadmin管理端使用探究手册
  16. 机器学习——DEAP数据集
  17. DEFCON 23即将展开物联网“大屠杀”
  18. hihocoder #1613 : 墨水滴 bfs+优先队列
  19. 什么是编程,学习编程的意义是?
  20. 河北大学计算机学院赵润,2010年河北省高招录取名单(7月20日)41

热门文章

  1. 控制pico—unity中双目摄像机的clearFlags问题
  2. 乞丐一句话感动12亿人
  3. 几年基础架构的经验之谈[42 things I learned from building a production database]
  4. 单目标跟踪(模板更新)(UpdateNet)《Learning the Model Update for Siamese Trackers》
  5. 为什么在Excel文档单元格中输入长段数字就变为公式?干货来啦!如何解决在excel单元格中输入数字变为公式的问题?
  6. 948-阿拉伯数字转换为汉语大写数字金额
  7. 学习笔记-WinRM
  8. 西安交大计算机研究生拟录取,西安交通大学2018硕士研究生拟录取名单公示
  9. 一文带你由浅入深Netty异步非阻塞世界
  10. 宝塔面板添加站点及运营商SSL免费证书的申请与使用