题目链接:http://acm.uestc.edu.cn/#/problem/show/1638

题意:
给定n个点(点权未知)和m条信息:u的权值>=v的权值+w
求点权的极小解和极大解(无解则输出-1)

极小解即每个点的点权可能的最小值
极大解即每个点的点权可能的最大值

数据范围:
1<=n<=100000
1<=m<=1000000
0<=w<=100
点权为0到100之间的整数

题解:
差分约束。
求最大值,跑最短路,建一条从v到u权值为w的边。
求最小值,跑最长路,建一条从u到v权值为-w的边。

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5+7;
const int maxm = 1e6+7;
struct edge{int v, w, next;edge(int v=0, int w=0, int next=0):v(v),w(w),next(next){}
}E1[2*maxm], E2[2*maxm];
int head1[maxn], head2[maxn], cnt1, cnt2;
int n, m, cnt[maxn], inq[maxn], mx[maxn], mi[maxn], Q[maxn];
void init(){memset(head1, -1, sizeof(head1));memset(head2, -1, sizeof(head2));cnt1 = cnt2 = 0;
}
void add(int u, int v, int w, int op)
{if(op&1){E1[cnt1]=edge(v,w,head1[u]), head1[u]=cnt1++;}else{E2[cnt2]=edge(v,w,head2[u]), head2[u]=cnt2++;}
}
bool spfa1(){int top = 0;memset(mi, -1, sizeof(mi));mi[0] = 0;cnt[0] = 1;inq[0] = 1;Q[top++] = 0;while(top){int u = Q[--top]; inq[u] = 0;for(int i = head1[u]; ~i; i = E1[i].next){int v = E1[i].v, w = E1[i].w;if(mi[v] < mi[u] + w){mi[v] = mi[u] + w;if(inq[v]) continue;if(cnt[v] > n) return 0;cnt[v]++;inq[v] = 1;Q[top++] = v;}}}return 1;
}
bool spfa2(){int top = 0;memset(mx, 0x3f, sizeof(mx));memset(inq, 0, sizeof(inq));memset(cnt, 0, sizeof(cnt));mx[0] = 100;cnt[0] = 1;inq[0] = 1;Q[top++] = 0;while(top){int u = Q[--top]; inq[u] = 0;for(int i = head2[u]; ~i; i=E2[i].next){int v = E2[i].v, w = E2[i].w;if(mx[v] > mx[u] + w){mx[v] = mx[u] + w;if(inq[v]) continue;if(cnt[v] > n) return 0;cnt[v]++;inq[v] = 1;Q[top++] = v;}}}for(int i=1; i<=n; i++){if(min(mi[i],mx[i])<0 || max(mi[i],mx[i])>100) return 0;}return 1;
}
int main()
{init();scanf("%d %d", &n,&m);for(int i = 1; i <= m; i++){int u, v, w;scanf("%d %d %d", &u,&v,&w);add(v, u, w, 1);add(u, v, -w, 2);}for(int i = 1; i <= n; i++){add(0, i, 0, 1);add(0, i, 0, 2);}if(spfa1()&&spfa2()){for(int i = 1; i <= n; i++){printf("%d %d\n", mi[i], mx[i]);}}else{puts("-1");}return 0;
}

UESTC 1638 红藕香残玉簟秋,轻解罗裳,独上兰舟。相关推荐

  1. cdoj1638 红藕香残玉簟秋,轻解罗裳,独上兰舟。

    地址:http://acm.uestc.edu.cn/#/problem/show/1638 题目: 红藕香残玉簟秋,轻解罗裳,独上兰舟. Time Limit: 4000/2000MS (Java/ ...

  2. 【差分约束系统】【强连通分量缩点】【拓扑排序】【DAG最短路】CDOJ1638 红藕香残玉簟秋,轻解罗裳,独上兰舟。...

    题意: 给定n个点(点权未知)和m条信息:u的权值>=v的权值+w 求点权的极小解和极大解(无解则输出-1) 极小解即每个点的点权可能的最小值 极大解即每个点的点权可能的最大值 题解: 差分约束 ...

  3. java—JSON(课堂笔记篇)

    简介 JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式. 格式: 格式1:对象格式 一个对象, 由一个大括号表示.      括号中 描述 ...

  4. 杜甫ndows 10怎么安排五笔,燕字五笔怎么打|燕子|杜甫|出处_诗词_综合试卷网_中国教育考试门户网站...

    燕字五笔: AUKO 拼音:yàn yān 注音:ㄧㄢˋ 部首:灬 部外笔画:12 总笔画:16 五笔:AUKO 仓颉:TLPF 笔顺编号:1221251211354444 四角号码:44331 释义 ...

  5. 李清照最经典的10首诗词

    在三千年的诗歌艺术中,男人一直是绝对的主角,虽然时常有女诗人,却如流星闪过. 一直到宋代,李清照的横空出世,给文坛带来一股清风. 她被誉为"千古第一才女",她的诗词可柔美.可刚毅. ...

  6. 安焦删除贴 牛人纷纷出现(1)

    安焦删除贴 牛人纷纷出现(1) 安焦删除贴 牛人纷纷出现(2) 安焦删除贴 牛人纷纷出现(3) 安焦删除贴 牛人纷纷出现(4) [Update @ 2004-12-04 23:32] 首页 焦点原创 ...

  7. 小程序制作宋词欣赏海报

    海报就是单纯的一张页面,可以用来练习WXML和WXSS.进一步入门微信小程序.海报效果如下: 在经过小程序的预热一和预热二后,新建一个小程序项目已经不成问题了.海报的制作过程: 1.页面结构实现 页面 ...

  8. 两宋词人Top10排排座

    第1名 北宋苏轼 苏轼,站在宋词巅峰的男人.他豪放词和婉约词双修,都达到了极高的境界.他的极品词篇有18首,是毫无疑问的"宋词第一人". 苏轼水平最高的3首词如下: <定风波 ...

  9. HTML第二天学习笔记

    今天看视频学习的第一个知识是HTML中的块元素<div>和行内元素<span>. 1 <!doctype html> 2 <html lang="e ...

最新文章

  1. Python控制结构总结
  2. 安全操作中心之于SDN
  3. github绑定自己的域名
  4. python分析nginx日志
  5. 文法G[E]分析表分析字符串(i+)-编译原理
  6. vsftpd 创建虚拟用户
  7. 专为存储设计的LRC编码
  8. 【网络教程】Chrome内核浏览器开启多线程下载(edge chrome)
  9. Microsoft office2016(专业增强版) 安装错误,报CRT(KB2999226)错误,详细解决方法
  10. android 高仿新浪微博,android 仿新浪微博开写篇
  11. 敏捷转型中的敏态与稳态
  12. 专科低学历想做web前端开发拿10k、15k高薪,我建议你这样做
  13. 从无刷直流电动机控制系统电磁兼容设计,谈电磁干扰原理
  14. AMD CPU搞编程能行吗
  15. 观音灵签 第六十四签下签卯宫 古人马前覆水
  16. 初一学生上计算机教学内容,初一计算机教学工作计划.docx
  17. 设计1-腾讯设计导航
  18. 蓝牙AOA融合蓝牙信标定位系统的实现
  19. 在文件选择打开方式里,无法添加.exe程序怎么解决
  20. 数据模拟:利用Java模拟数据(姓名,邮箱,地址,电话等信息,时间,工资,1-10随机数)并存入mysql

热门文章

  1. 携手酷依恋6元韩版服饰共享财富
  2. CCNA2.0笔记_动态路由
  3. 抖音巨量服务商入驻流程
  4. 超详细的CentOS7.4下载与图文安装
  5. 关键路径例题图表_详解关键路径法,这可能是你能找到的最详尽的了
  6. PAT甲级 1027 Colors in Mars (20分)
  7. 《点燃我,温暖你》李峋 代码 爱心❤ - 源代码
  8. Only the original thread that created a view hierarchy can touch its views异常
  9. Java 数组(三)二维数组
  10. 此生不戒多巴胺-冲刺日志(第八天)