[luogu P2294] [HNOI2005]狡猾的商人
[luogu P2294] [HNOI2005]狡猾的商人
题目描述

输入输出格式
输入格式:
从文件input.txt中读入数据,文件第一行为一个正整数w,其中w < 100,表示有w组数据,即w个账本,需要你判断。每组数据的第一行为两个正整数n和m,其中n < 100,m < 1000,分别表示对应的账本记录了多少个月的收入情况以及偷看了多少次账本。接下来的m行表示刁姹偷看m次账本后记住的m条信息,每条信息占一行,有三个整数s,t和v,表示从第s个月到第t个月(包含第t个月)的总收入为v,这里假设s总是小于等于t。
输出格式:
输出文件output.txt中包含w行,每行是true或false,其中第i行为true当且仅当第i组数据,即第i个账本不是假的;第i行为false当且仅当第i组数据,即第i个账本是假的。
输入输出样例
2 3 3 1 2 10 1 3 -5 3 3 -15 5 3 1 5 100 3 5 50 1 2 51
true false
显然这是一道差分题。。对于一个限制条件(x,y,z),要满足f[y]=f[x-1]+z,即f[y]>=f[x-1]+z&&f[y]<=f[x-1]+z。
稍微变形得f[y]>=f[x-1]+z&&f[x-1]>=f[y]-z。也就是说,需要建一条x-1到y,权值为z的边和y到x-1,权值为-z的边,然后跑一个最短路。
如果出现了负权回路就GG。对于这一题,我采用了dfs版的spfa,更简便且适用于这题。
code:
 %:pragma GCC optimize()
 #include<bits/stdc++.h>
 #define Ms(a,x) memset(a,x,sizeof a)
 using namespace std;
 ,M=;
 int n,m,inf,tot,tag; bool vis[N];
 int lnk[N],nxt[M],son[M],w[M],dis[N];
 inline int read() {
     ,f=; char ch=getchar();
     :,ch=getchar();
     +ch-',ch=getchar();
     return x*f;
 }
 void add(int x,int y,int z) {
     nxt[++tot]=lnk[x],lnk[x]=tot,son[tot]=y,w[tot]=z;
 }
 void spfa(int x) {
     vis[x]=;
     for (int j=lnk[x]; j; j=nxt[j])
         if (dis[son[j]]<dis[x]+w[j]) {
             dis[son[j]]=dis[x]+w[j];
             ; return;}
             vis[son[j]]=,spfa(son[j]);
         }
     vis[x]=;
 }
 int main() {
     for (int T=read(); T; T--) {
         n=read(),m=read(),tag=,tot=,Ms(lnk,),Ms(nxt,);
         ,x,y,z; i<=m; i++)
             x=read()-,y=read(),z=read(),add(x,y,z),add(y,x,-z);
         Ms(vis,),Ms(dis,);
         ; i<=n; i++) {spfa(i); if (!tag) break;}
         puts(tag?"true":"false");
     }
     ;
 }
[luogu P2294] [HNOI2005]狡猾的商人的更多相关文章
- LUOGU  P2294 [HNOI2005]狡猾的商人(差分约束)
		
[传送门] (https://www.luogu.org/problemnew/show/P2294) 解题思路 差分约束.先总结一下差分约束,差分约束就是解决一堆不等式混在一起,左边是差的形式,右边 ...
 - 洛谷P2294 [HNOI2005]狡猾的商人
		
P2294 [HNOI2005]狡猾的商人 题目描述 输入输出格式 输入格式: 从文件input.txt中读入数据,文件第一行为一个正整数w,其中w < 100,表示有w组数据,即w个账本,需要 ...
 - P2294 [HNOI2005]狡猾的商人(差分约束)
		
P2294 [HNOI2005]狡猾的商人 对于每个$(x,y,w)$,连边$(x-1,y,w),(y,x-1,-w)$,表示前$y$个月的收益比前$x-1$个月的收益大$w$ 这样题目就转化为询问图 ...
 - 洛谷 [p2294] [HNOI2005] 狡猾的商人
		
差分约束做法 又是一道转换成前缀和的差分约束题,已知从s月到t月的收入w,设数组pre[i]代表从开始到第i个月的总收入 构造差分不等式 $ pre[s-1]-pre[t]==w $ 为了满足松弛操作 ...
 - 题解——洛谷P2294 [HNOI2005]狡猾的商人(差分约束)
		
裸的差分约束 dfs判断负环,如果有负环就false,否则就是true 注意有多组数据,数组要清空 #include <cstdio> #include <algorithm> ...
 - Bzoj1202/洛谷P2294 [HNOI2005]狡猾的商人(带权并查集/差分约束系统)
		
题面 Bzoj 洛谷 题解 考虑带权并查集,设\(f[i]\)表示\(i\)的父亲(\(\forall f[i]<i\)),\(sum[i]\)表示\(\sum\limits_{j=fa[i]} ...
 - P2294 [HNOI2005]狡猾的商人
		
题目描述 输入输出格式 输入格式: 从文件input.txt中读入数据,文件第一行为一个正整数w,其中w < 100,表示有w组数据,即w个账本,需要你判断.每组数据的第一行为两个正整数n和m, ...
 - luogu 2294 [HNOI2005]狡猾的商人 差分约束
		
一个差分约束模型,只需判一下有没有负环即可. #include <bits/stdc++.h> #define N 103 #define M 2004 #define setIO(s) ...
 - [HNOI2005]狡猾的商人 ,神奇做法——贪心
		
洛谷P2294 [HNOI2005]狡猾的商人 ,神奇做法--贪心 看到大牛都是写的差分约束或带权并查集,本蒟蒻都不太会(还是用差分约束过了的QAQ),但是想出一种贪心的策略,运用神奇的优先队列实现. ...
 
随机推荐
- 【bzoj】4538: [Hnoi2016]网络
			
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4538 维护一个数据结构支持对于一颗树的操作,需要支持: 1.对于树上的一条路径上的每个点上 ...
 - 【五】php 面向对象
			
面向对象 概念:按类进行分类,类是表示彼此之间可能互不相同,但是具有一些共同点的对象集合 多态性:不同的类对同一操作可以有不同的行为 继承:允许我们使用子类在类之间创建层次关系 类 关键字:class ...
 - 字符串GZIP压缩解压
			
c# /// <summary> /// 字符串压缩解压 /// </summary> public class Zipper { public static string C ...
 - maven 引入外部jar包的几种方式
			
方式1:dependency 本地jar包 <dependency> <groupId>com.hope.cloud</groupId> <!--自定义--& ...
 - linq to sql  and  linq to object 总结
			
Enumable类型是linq to object 是一个很特殊的类型 这个类型的数据源都是在程序的内存中 Queryable类型是 Linq to sql 对数据库进行操作都是这个类型 ...
 - 用aws cli 下载s3中数据到本地
			
参考https://blog.csdn.net/DynastyRumble/article/details/76649120 1 首先注册AWS账户,绑定信用卡.一定要填写正确的手机,因为验证方式是它 ...
 - x1c 2018 静音调教
			
折腾快1周,在去intel官网手动下载最新显卡驱动,手动卸载老驱动,断网,重启,手动安装之后(还要再禁用点和散热相关的设备).终于不卡了.开始工作,但又遇到一个问题:太TM吵了! 经过调教,基本保障看 ...
 - CC初试啼声-----演讲与我
			
演讲与我 我非常讨厌演讲,因为我不会演讲,当我站在许多人面前讲话时,我会非常的紧张,我会血压升高,心跳加速,后背冒冷汗. 第一次演讲应该是在我初二的时候,期末考试结束,班级前五名的同学要做一个分享,我 ...
 - Codeforces 444 C - DZY Loves Colors
			
C - DZY Loves Colors 思路: 分块,复杂度有点玄学,和普通分块不同的是在这个块被一次染色的时候暴力染整个块. 代码: #pragma GCC optimize(2) #pragma ...
 - lua --- Module
			
首先需要明白,一般情况下,我们的定义的lua模块的文件与模块名(其实就是table的名字)是一致的,当然,不一致代码也是可以编译的(亲测),之所以这样,本人认为是为了实际项目中管理的方便.以下是定义模 ...