地址:http://acm.uestc.edu.cn/#/problem/show/1638

题目:

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

Time Limit: 4000/2000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)

考试结束后,为了证明自己才是最蒻的,同学们纷纷去找老师查分阅数—哦不—是查阅分数。

可老师担心学生知道自己的成绩会伤心,于是只告诉学生这样的信息:

编号为 uu 的学生分数比编号为 vv 的学生分数高 ww 分甚至更多。

知道这些信息后,同学们想知道自己分数可能的 最小值 和 最大值 。不过老师记性不太好,给出的信息可能有误。

Input

第一行两个整数 nn 和 mm,表示学生个数和老师给的信息数。

接下来 mm 行每行三个整数 uu 、vv 和 ww,含义如上文所描述。

学生从 11 到 nn 编号,学生的分数为 00 到 100100 之间的整数。

1≤n≤1000001≤n≤100000,1≤m≤10000001≤m≤1000000,1≤u1≤u 、v≤nv≤n,0≤w≤1000≤w≤100 。

Output

若老师给出的信息有误,仅输出一行 −1−1 。

否则输出 nn 行,第 ii 行为以空格隔开的两个整数,分别表示编号为 ii 的学生的分数可能的 最小值 和 最大值 。

Sample input and output

Sample Input Sample Output
2 2
1 2 1
2 1 1
-1
3 2
1 2 1
2 3 1
2 100
1 99
0 98

Source

2017 UESTC Training for Graph Theory
思路:
  差分约束。
  求最大值,跑最短路,建一条从v到u权值为w的边。
  求最小值,跑最长路,建一条从u到v权值为-w的边。
  别用vector存边,会T的不省人事,别问我怎么知道的!
 1 #include <bits/stdc++.h>
 2
 3 using namespace std;
 4
 5 #define MP make_pair
 6 #define PB push_back
 7 typedef long long LL;
 8 typedef pair<int,int> PII;
 9 const double eps=1e-8;
10 const double pi=acos(-1.0);
11 const int K=1e6+7;
12 const int mod=1e9+7;
13
14 struct node
15 {
16     int to,v,next;
17     node(){}
18     node(int x,int y,int z){to=x,v=y,next=z;}
19 }eg1[2*K],eg2[2*K];
20 int t1,t2,hd1[K],hd2[K];
21 void add(int u,int v,int w,int op)
22 {
23     if(op&1)
24         eg1[t1]=node(v,w,hd1[u]),hd1[u]=t1++;
25     else
26         eg2[t2]=node(v,w,hd2[u]),hd2[u]=t2++;
27 }
28 int n,m,cnt[K],inque[K],mx[K],mi[K],Q[K];
29 bool spfa1(void)
30 {
31     int top=0;
32     memset(mi,-1,sizeof mi);
33     Q[top++]=0,inque[0]=1,cnt[0]=1,mi[0]=0;
34     while(top)
35     {
36         int u=Q[--top];
37         inque[u]=0;
38         for(int i=hd1[u];~i;i=eg1[i].next)
39         {
40             int v=eg1[i].to,w=eg1[i].v;
41             if(mi[v]<mi[u]+w)
42             {
43                 mi[v]=mi[u]+w;
44                 if(inque[v]) continue;
45                 if(cnt[v]>n) return 0;
46                 Q[top++]=v,inque[v]=1,cnt[v]++;
47             }
48
49         }
50     }
51     return 1;
52 }
53 bool spfa2(void)
54 {
55     int top=0;
56     memset(inque,0,sizeof inque);
57     memset(cnt,0,sizeof cnt);
58     memset(mx,0x3f3f3f3f,sizeof mx);
59     Q[top++]=0,inque[0]=1,cnt[0]=1,mx[0]=100;
60     while(top)
61     {
62         int u=Q[--top];
63         inque[u]=0;
64         for(int i=hd2[u];~i;i=eg2[i].next)
65         {
66             int v=eg2[i].to,w=eg2[i].v;
67             if(mx[v]>mx[u]+w)
68             {
69                  mx[v]=mx[u]+w;
70                 if(inque[v]) continue;
71                 if(cnt[v]>n) return 0;
72                 Q[top++]=v,inque[v]=1,cnt[v]++;
73             }
74         }
75     }
76     for(int i=1;i<=n;i++)
77     if(min(mi[i],mx[i])<0||max(mx[i],mi[i])>100)
78         return 0;
79     return 1;
80 }
81 int main(void)
82 {
83     memset(hd1,-1,sizeof hd1);
84     memset(hd2,-1,sizeof hd2);
85     scanf("%d%d",&n,&m);
86     for(int i=1,u,v,w;i<=m;i++)
87         scanf("%d%d%d",&u,&v,&w),add(v,u,w,1),add(u,v,-w,2);
88     for(int i=1;i<=n;i++)
89         add(0,i,0,1),add(0,i,0,2);
90     if(spfa1()&&spfa2())
91         for(int i=1;i<=n;i++)
92             printf("%d %d\n",mi[i],mx[i]);
93     else
94         printf("-1\n");
95     return 0;
96 }

转载于:https://www.cnblogs.com/weeping/p/6973419.html

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

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

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

  2. UESTC 1638 红藕香残玉簟秋,轻解罗裳,独上兰舟。

    题目链接:http://acm.uestc.edu.cn/#/problem/show/1638 题意: 给定n个点(点权未知)和m条信息:u的权值>=v的权值+w 求点权的极小解和极大解(无解 ...

  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. android开发应用知识,Android应用开发经常使用知识
  2. 无需Root也能Hook?——Depoxsed框架演示
  3. 【论文解读】目标检测一卷到底之后,终于有人为它挖了个新坑|CVPR2021 Oral
  4. 华为欧拉操作系统发布,将推出自研编程语言打通鸿蒙和欧拉
  5. Kafka和RocketMQ底层存储:零拷贝技术
  6. linux shell写日志,Linux shell编程之文件内容写入和日志记录
  7. 8分钟教你学会局域网邮箱服务器搭建
  8. 学习总结以及对接下来的规划
  9. 图片加载之前显示 加载中或者加载中图片
  10. windows和linux系统云服务器桌面远程连接教程
  11. 由筷子被嘲讽来谈AM中的【价值观】
  12. 如何修改图片的dpi?图片的dpi怎么调?
  13. 云服务器选股,【图】老师们能不能在通达信7.48中整合云行情服务器?_选股公式,股票,炒股公式,股票指标,股票论坛_股票软件技术交流论坛_理想论坛 - 股票论坛...
  14. Factory Track 7 链接 Infor CloudSuite Industrial 10 操作设置
  15. FDC系列电容传感器及FDC2214使用要点
  16. vscode下载慢解决办法
  17. AutoCAD2014打开闪退的解决办法
  18. MAYA快捷键,安装包安装视频,送给刚学习的3d建模人
  19. 【好文导读】人工智能和机器学习富有启迪的文章2020
  20. Python:分类模型数据集找不到怎么办?自己动手,丰衣足食!

热门文章

  1. Echarts的常用api
  2. C++以及java学习方法和路线
  3. 创业穷途,我要加入丐帮
  4. play home android,playhome
  5. wps 分节符(连续) 自动变成 分节符(下一页) 解决办法
  6. 计算机图形基础学答案,计算机图形学基础答案全.pdf
  7. package编译不过如何处理
  8. 分布式+ARM:云和恩墨zData与华为TaiShan服务器完成兼容性认证测试
  9. 几款游戏引擎技术对比
  10. 赋值具有的非单一 rhs 维度多于非单一下标数错误的分析和解决方法