POJ 1716 Integer Intervals 差分约束
题目:http://poj.org/problem?id=1716
1 #include <stdio.h> 2 #include <string.h> 3 #include <vector> 4 #include <queue> 5 6 const int INF = 0x3f3f3f3f; 7 8 struct Edge 9 { 10 int v, w; 11 Edge(){}; 12 Edge(int v, int w) 13 { 14 this->v = v; 15 this->w = w; 16 } 17 }; 18 19 std::vector<Edge>map[10010]; 20 int dist[10010]; 21 bool inque[10010]; 22 23 void spfa(int s) 24 { 25 std::queue<int>q; 26 memset(inque, 0, sizeof(inque)); 27 dist[s] = 0; 28 q.push(s); 29 inque[s] = 1; 30 while(!q.empty()) 31 { 32 int u = q.front(); 33 q.pop(); 34 inque[u] = 0; 35 for(int i = 0; i < map[u].size(); i++) 36 { 37 int v = map[u][i].v; 38 if(dist[v] < dist[u] + map[u][i].w) 39 { 40 dist[v] = dist[u] + map[u][i].w; 41 if(!inque[v]) 42 { 43 q.push(v); 44 inque[v] = 1; 45 } 46 } 47 } 48 } 49 } 50 51 int main() 52 { 53 int n; 54 int x, y; 55 while(scanf("%d", &n) != EOF) 56 { 57 for(int i = 0; i <= 10001; i++) 58 { 59 map[i].clear(); 60 } 61 int low = INF, high = 0; 62 for(int i = 0; i < n; i++) 63 { 64 scanf("%d %d", &x, &y); 65 map[x].push_back(Edge(y+1, 2)); 66 if(low > x)low = x; 67 if(high < y)high = y; 68 } 69 for(int i = low; i <= high+1; i++) 70 { 71 map[0].push_back(Edge(i, 0)); 72 map[i].push_back(Edge(i+1, 0)); 73 map[i+1].push_back(Edge(i, -1)); 74 dist[i] = -INF; 75 } 76 map[0].push_back(Edge(high+1, 0)); 77 spfa(low); 78 printf("%d\n", dist[high+1] - dist[low]); 79 } 80 return 0; 81 }
View Code
转载于:https://www.cnblogs.com/wolfred7464/p/3379416.html
POJ 1716 Integer Intervals 差分约束相关推荐
- POJ 1716 Integer Intervals【差分约束】
题意: 知道了数轴上的n个区间,每个区间都是连续的int区间,现在要在数轴上任意取一堆元素,构成一个元素集合V要求每个区间和元素集合V的交集至少有两个不同的元素 求集合V最小的元素个数. 转一分析:( ...
- POJ 1716 Integer Intervals
POJ_1716 由于有了前面几个题目的基础,解答这个题目的过程还算顺利.我们设S[i]为区间[0,i)内选取的数字的数量,那么有①S[b+1]-S[a]>=2,②S[i+1]-S[i]> ...
- poj 1201 Intervals 差分约束
真 .读题杀,英文题一脸懵逼,看来以后还要多读读英文题,不过读完了就能发现这其实是一道很裸的差分约束,按照题意建边即可,但还要注意的就是后一个要大于等于前一个,并且每个位置不能超过一个元素.求一边最大 ...
- POJ 3159 Candies(差分约束+SPAF)
题意: 给n个小朋友分发糖果,但小朋友们之间有嫉妒心.接下来m行,每行三个数,分别表示小朋友A希望B得到的糖果不能比他多x个.要求你计算在满足所有小朋友的条件的情况下最多需要准备多少颗糖. 题目: D ...
- poj1201/zoj1508/hdu1384 Intervals(差分约束)
转载请注明出处: http://www.cnblogs.com/fraud/ --by fraud Intervals Time Limit: 10 Seconds Me ...
- poj-1201 Intervals(差分约束)
题目链接: Intervals Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 24379 Accepted: 9274 ...
- POJ - 3169 SPFA解差分约束除了有解,负环还有另一种情况
题意就是有N头牛排成一个直线..有些牛之间互相讨厌..距离必须大于等于某个...有些牛之间相互暧昧..距离必须小于等于某个...牛的前后顺序和编号是一样的...问这些牛最多能排多长.. 比较传统的SP ...
- POJ - 1201 Intervals(差分约束+最短路)
题目链接:点击查看 题目大意:给定n个闭区间[ai,bi]和n个整数ci,你需要构造一个整数集合Z,使得Z中满足所有的ai<=x<=bi的整数不少于ci个,求出这样的整数集合Z最少包含多少 ...
- POJ 1201 amp; HDU1384 amp; ZOJ 1508 Intervals(差分约束+spfa 求最长路径)
题目链接: POJ:http://poj.org/problem?id=1201 HDU:http://acm.hdu.edu.cn/showproblem.php? pid=1384 ZOJ:htt ...
最新文章
- 33 ES6中的类和对象
- 20165101刘天野 2018-2019-2《网络对抗技术》第1周 Kali的安装
- njust 1927 谁才是最强战舰!(anti-nim博弈论)
- html 页面友情提示,HTML参考
- mysql 根据地图 坐标 查询 周边景区、酒店
- SharpDeveloeper开发ASP.NET MVC汗流浃背
- JavaWeb笔记01-XML
- Ubuntu 16.04 软件安装
- 20145313《信息安全系统设计基础》第7周学习总结
- 调度 Cmax和∑Ci是什么区别
- 飞机大战游戏微信小程序源码
- Git的简介及使用技巧 PPT
- python实现协同过滤算法
- java实现9*9乘法表
- MOSS Project Server 2007
- uchome的Ajax
- FME 2017.0 的新特性(预览版发布)
- 简单实用的pandas技巧:如何将内存占用降低90%
- [计算机网络]第一章——计算机网络和因特网
- PaddleDetection重磅升级!PP-YOLOE、PP-PicoDet云边端一网打尽!
热门文章
- 查看linux目录剩余空间大小
- 微信只显示分享朋友圈和好友 屏蔽其他的分享
- 网站解析 选择 主记录www 为主站 记录类型都选A 泛解析 选*就好了
- 【转载】Linux 命令行快捷键 - 移动光标
- PXE无人值守系统安装配置简要说明
- 创建最原始的XMLHttprequest对象
- 迅雷BT下载电影99.9%不动原地循环解决方案
- [导入]RSS商业应用和电子商务的结合
- 荣耀linux装win读不出u盘,华为/荣耀路由器USB接入硬盘/U盘后无法识别怎么解决?...
- C++字符串(string/to_string/append/substr/length/find/rfind/replace/stoi转数字转int)