洛谷 P2294 [HNOI2005]狡猾的商人

题目:

  • 有图·。转链接

题解:

  • 差分约束。
  • 虽然题目中没有出现不等式,但还是属于差分约束的范畴之内的。
  • 一开始我就按照它的要求u到v加权值w的边。但发现不行。于是我就又加了一条v到u权值为-w的边,然后就行了。反思后发现差分约束的题没弄出来往往是还有约束条件没有找全
#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#define N 100005
using namespace std;struct E {int next, to, dis;} e[N];
int T, n, m, num, flag;
int h[N], dis[N], cnt[N];
bool vis[N];void add(int u, int v, int w)
{e[++num].next = h[u];e[num].to = v;e[num].dis = w;h[u] = num;
}int read()
{int x = 0, f = 1; char c = getchar();while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}while(c >= '0' && c <= '9') {x = x * 10 + c - '0'; c = getchar();}return x *= f;
}bool spfa(int s)
{queue<int> que;memset(dis, -0x3f, sizeof(dis));dis[s] = 0, vis[s] = 1, que.push(s);while(!que.empty()){int now = que.front();que.pop();  vis[now] = 0;cnt[now]++; if(cnt[now] == n) return 0;for(int i = h[now]; i != 0; i = e[i].next)if(dis[now] + e[i].dis > dis[e[i].to]){dis[e[i].to] = dis[now] + e[i].dis;if(!vis[e[i].to])vis[e[i].to] = 1, que.push(e[i].to);}}return 1;
}int main()
{cin >> T;while(T--){flag = num = 0;memset(h, 0, sizeof(h));memset(cnt, 0, sizeof(cnt));memset(vis, 0, sizeof(vis));n = read(), m = read();for(int i = 1; i <= m; i++){int u = read(), v = read(), w = read();add(u - 1, v, w), add(v, u - 1, -w);}for(int i = 0; i <= n; i++) add(n + 1, i, 0);if(!spfa(n + 1)) printf("false\n");else printf("true\n");}return 0;
}

转载于:https://www.cnblogs.com/BigYellowDog/p/11235934.html

洛谷 P2294 [HNOI2005]狡猾的商人相关推荐

  1. 洛谷P2294 [HNOI2005]狡猾的商人

    一道差分约束. 但是我横看竖看, 只从字缝里看到了"并查集"三个大字. 很明显嘛, 什么判断真假, 什么前缀和关系传递, 不是明摆着的带权并查集吗? #include <cs ...

  2. P2294 [HNOI2005]狡猾的商人

    P2294 [HNOI2005]狡猾的商人 题意: 你需要调查某个商人的账本,给你n个月内,m条账单信息,每条账单信息为x到y月的收入或者支出多少钱,问你根据账单信息判断这个账本是否合理 5 3 1 ...

  3. P2294 [HNOI2005]狡猾的商人(带权并查集+前缀和)

    P2294 [HNOI2005]狡猾的商人 解题思路:这里用带权并查集记录每个节点与自己祖先的距离.如果两个点没有相同的祖先,那么需要把这两个集合合并起来,用已经的点确定p点到q的距离,num[p] ...

  4. P2294 [HNOI2005]狡猾的商人 带权并查集

    顺便回顾下带权并查集. 在普通并查集的基础上维护一个d数组,表示权值. 这题d[i]表示当前节点x与其祖宗节点get(x), 的sm差值,即sm[x]-sm[get(x)] =d[x] 初始d均为0. ...

  5. [HNOI2005]狡猾的商人(差分约束)

    P2294 [HNOI2005]狡猾的商人 (来自Luogu) 题目概述 数据规模: w,n,m <= 100 思路: 这个题的难点在于不好想到差分,转化:a-b=k是a-b>=k& ...

  6. 差分约束 [HNOI2005]狡猾的商人(洛谷 P2294)

    [HNOI2005]狡猾的商人 题目大意: n 个月,m 个约束条件,判断最终是否产生矛盾: 因为这里不是 xix_ixi​ <= yjy_jyj​ + ckc_kck​,而是 sumtsum_ ...

  7. 1202: [HNOI2005]狡猾的商人

    1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1554  Solved: 745 [Submit][St ...

  8. BZOJ1202 [HNOI2005]狡猾的商人 【并查集】

    1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4180  Solved: 2015 [Submit][S ...

  9. bzoj1202[HNOI2005]狡猾的商人

    bzoj1202[HNOI2005]狡猾的商人 题意: 账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai .所谓一段时间内的总收入,就是这段时间内每个月的收入额的总和.给出m段时间内的总 ...

最新文章

  1. 努比亚压力键不显示菜单问题
  2. Qualcomm式创新融入中国 有何深层逻辑?
  3. 机器学习中有哪些距离度量方式
  4. 存储过程实现无限级分类(3)
  5. 归并排序(二路、递归)
  6. android gallery源代码,可循环显示图像的Android Gallery组件
  7. Linux 服务器感染kerberods 病毒
  8. Multi-Task 多任务学习, 那些你不知道的事
  9. 图片怎么做gif?如何让图片变GIF动图?
  10. 靠谱的社交app有哪些
  11. 【物联网毕设基础】NBIOT 窄带物联网
  12. 基于RGB颜色空间使用OpenCV-Python实现照片换底
  13. 关于一些数据集的下载链接
  14. 浅谈汽车OTA的现状与未来发展趋势
  15. 《软技能-代码之外的生存指南》读书笔记
  16. adb: error: failed to copy ‘xx‘ to ‘xx‘: remote couldn‘t create file: Permission denied
  17. Altium Designer 18中的System–Navigation
  18. 不伤眼睛的电脑背景颜色
  19. Redis原理之 持久化
  20. 中睿微课堂 | 伪装成简历的攻击样本,各位HR小伙伴需要注意啦

热门文章

  1. java stream findlast_恕我直言你可能真的不会java第9篇-Stream元素的匹配与查找
  2. android仿饿了么筛选,Android仿饿了么搜索功能
  3. java: 代码过长_给初学Java,知道这4点太重要了!
  4. python下int转日期_减去不同格式的日期并转换为Int - python
  5. DSP芯片概述--7.24
  6. 小程序按钮调用扫一扫_他在一个小程序“按钮”上动了个手脚,生意大火,赢得美人归!...
  7. python为什么会出现无响应怎么办_python定时检测无响应进程并重启的实例代码
  8. python 爬虫_python爬虫技术汇总
  9. Windows删除EFI系统分区
  10. 在MyEclipse中使用javadoc导出API文档详解