1202: [HNOI2005]狡猾的商人

题目:传送门

题解:
   据说是带权并查集!蒟蒻不会啊!!!

   可是听说lxj大佬用差分约束A了,于是开始一通乱搞。

   设s[i]为前i个月的总收益,那么很容易就可以推出约束条件了啊:

   s[x-1]>=s[y]-c s[y]>=s[x-1]+c

   然后就可以去跑最长路了

   吐槽:

   lxj大佬推出来的条件竟然是两个小于等于号:s[x-1]<=s[y]-c s[y]<=s[x-1]+c

   然后跑最短路也A了,表示很玄学qwq

代码:

 #include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
using namespace std;
int T;
struct tj
{
int x,y,d;
}b[];
struct node
{
int x,y,d,next;
}a[];int len,last[];
int s[],d[];
void ins(int x,int y,int d)
{
len++;a[len].x=x;a[len].y=y;a[len].d=d;
a[len].next=last[x];last[x]=len;
}
bool v[];int ru[],list[];
int main()
{
scanf("%d",&T);
while(T--)
{
memset(s,,sizeof());
int n,m;scanf("%d%d",&n,&m);
len=;memset(last,,sizeof(last));
for(int i=;i<=m;i++)
{
int x,y,d;
scanf("%d%d%d",&x,&y,&d);
ins(y,x-,-d);ins(x-,y,d);
}
/*
s[x-1]>=s[y]-c s[y]>=s[x-1]+c
*/
for(int i=;i<=n;i++)d[i]=-;
int head=;for(int i=n;i>=;i--)list[++head]=i;
memset(v,,sizeof(v));memset(ru,,sizeof(ru));
bool bk=true;
while(head!=)
{
int x=list[head--];v[x]=true;
for(int k=last[x];k;k=a[k].next)
{
int y=a[k].y;
if(d[y]<d[x]+a[k].d)
{
d[y]=d[x]+a[k].d;
ru[y]++;if(ru[y]==n+){bk=false;break;}
if(v[y]==true)v[y]=false,list[++head]=y;
}
}
if(bk==false)break;
}
if(bk==false)printf("false\n");
else printf("true\n");
}
return ;
}

bzoj1202: [HNOI2005]狡猾的商人(差分约束)的更多相关文章

  1. BZOJ 1202: [HNOI2005]狡猾的商人( 差分约束 )

    好像很多人用并查集写的... 前缀和, 则 sumt - sums-1 = v, 拆成2条 : sumt ≤ sums-1 + v, sums-1 ≤ sumt - v 就是一个差分约束, 建图跑SP ...

  2. luogu 2294 [HNOI2005]狡猾的商人 差分约束

    一个差分约束模型,只需判一下有没有负环即可. #include <bits/stdc++.h> #define N 103 #define M 2004 #define setIO(s) ...

  3. LUOGU P2294 [HNOI2005]狡猾的商人(差分约束)

    [传送门] (https://www.luogu.org/problemnew/show/P2294) 解题思路 差分约束.先总结一下差分约束,差分约束就是解决一堆不等式混在一起,左边是差的形式,右边 ...

  4. [BZOJ1202][HNOI2005]狡猾的商人

    [BZOJ1202][HNOI2005]狡猾的商人 试题描述 刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的.账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai(i= ...

  5. bzoj1202: [HNOI2005]狡猾的商人(并查集 差分约束)

    1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4127  Solved: 1981[Submit][Sta ...

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

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

  7. BZOJ1202 [HNOI2005]狡猾的商人 并查集维护前缀和

    1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1935  Solved: 936[Submit][Stat ...

  8. BZOJ1202: [HNOI2005]狡猾的商人(带权并查集)

    Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4577  Solved: 2249[Submit][Status][Discuss] Descript ...

  9. BZOJ1202 [HNOI2005]狡猾的商人&&BZOJ3436小K的农场

    差分约束第三题 传送门: 很明显的差分约束,d[y]-d[x-1]>=v d[y]-d[x-1]<=v 根据这个建图然后跑bellman-ford就可以了. //BZOJ 1202 //b ...

随机推荐

  1. Gretna2.0 使用过程中遇到的问题

    在做Normalize的时候,报错"Cannot find T1 image (e.g. *.dcm in T1 Directory), Please Check again!", ...

  2. Map (就一个json.jar)

    public static void main(String[] args) { List<Map<Integer, String>> m = new ArrayList< ...

  3. PySide2运行出错问题解决

    PySide2是QT官方出的Python的QT封装, 不过默认安装运行时候会有一些小问题, 可能是系统里已经安装过其他版本QT的原因, 会报错如下: PySide2 qt.qpa.plugin: Co ...

  4. 观光奶牛Sightseeing Cows (二分+spfa(dfs))

    观光奶牛 农夫约翰已决定通过带他们参观大城市来奖励他们的辛苦工作!奶牛必须决定如何最好地度过他们的空闲时间. 幸运的是,他们有一个详细的城市地图,显示L(2≤L≤1000)主要地标(方便编号为1 .. ...

  5. Comparable与Comparator区别(实现和使用)

    一.Comparable接口 1.Comparable接口是什么? 此接口强行对实现它的每个类的对象进行整体排序.此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 . ...

  6. Session会在浏览器关闭后消失吗?

    转  http://blog.csdn.net/rongwenbin/article/details/51784310 Cookie的两种类型   在项目开发中我们时常将需要在客户端(浏览器)缓存的数 ...

  7. BZOJ 3052 树上带修莫队

    思路: 就是把带修莫队移到了树上 块的大小开到(n^2/3)/2 比较好- 这是一个卡OJ好题 //By SiriusRen #include <cmath> #include <c ...

  8. SqlServer Function 实例

    ① sql server function 创建 这里使用一个计算年龄精确到分的function作为一个demo, create Function [dbo].[fn_GetAge] ( @BIRTH ...

  9. struts2学习之基础笔记1

    第6章 Strusts 2框架 1  引出 Web App  àà MVC  àà View 视图(jsp,html,JS) | C(Servlet)Filter,Listneer | M(数据bea ...

  10. Cacti部署之配置防火墙

    因为SNMP协议通信会使用udp 的161端口和tcp的199端口,因此需要在防火墙上将其开启 开启入站端口   保存数据或者重启服务   测试SNMP工具连接是否可获取信息     注意:要能使用s ...