差分约束第三题

传送门:

很明显的差分约束,d[y]-d[x-1]>=v d[y]-d[x-1]<=v

根据这个建图然后跑bellman-ford就可以了。

 //BZOJ 1202
 //by Cydiater
 //2016.9.2
 #include <iostream>
 #include <cstdlib>
 #include <cstdio>
 #include <queue>
 #include <map>
 #include <cstring>
 #include <string>
 #include <algorithm>
 #include <iomanip>
 #include <cmath>
 #include <ctime>
 using namespace std;
 #define ll long long
 #define up(i,j,n)       for(int i=j;i<=n;i++)
 #define down(i,j,n)     for(int i=j;i>=n;i--)
 ;
 const int oo=0x3f3f3f3f;
 inline int read(){
     ,f=;
     ;ch=getchar();}
     +ch-';ch=getchar();}
     return x*f;
 }
 ,dis[MAXN];
 struct edge{
     int x,y,v;
 }e[MAXN];
 namespace solution{
     inline void insert(int x,int y,int v){e[++len].x=x;e[len].y=y;e[len].v=v;}
     void init(){
         N=read();M=read();len=;
         up(i,,M){
             ,y=read(),v=read();
             insert(x,y,-v);
             insert(y,x,v);
         }
     }
     bool Bellman_Ford(){
         up(i,,N)dis[i]=oo;
         up(i,,N-){
             ;
             up(j,,len)if(dis[e[j].y]>dis[e[j].x]+e[j].v){
                 dis[e[j].y]=dis[e[j].x]+e[j].v;
                 flag=;
             }
             if(flag)break;
         }
         up(j,,len);
         ;
     }
 }
 int main(){
     //freopen("input.in","r",stdin);
     using namespace solution;
     T=read();
     while(T--){
         init();
         if(Bellman_Ford())puts("true");
         else              puts("false");
     }
     ;
 }
 

差分约束第四题

传送门:

和上一道题基本一样

 //BZOJ 3436
 //by Cydiater
 //2016.9.2
 #include <iostream>
 #include <cstdio>
 #include <cstdlib>
 #include <cstring>
 #include <string>
 #include <iomanip>
 #include <algorithm>
 #include <queue>
 #include <map>
 #include <ctime>
 #include <cmath>
 using namespace std;
 #define ll long long
 #define up(i,j,n)       for(int i=j;i<=n;i++)
 #define down(i,j,n)     for(int i=j;i>=n;i--)
 ;
 const int oo=0x3f3f3f3f;
 inline int read(){
     ,f=;
     ;ch=getchar();}
     +ch-';ch=getchar();}
     return x*f;
 }
 ,dis[MAXN];
 struct edge{
     int x,y,v;
 }e[MAXN];
 namespace solution{
     inline void insert(int x,int y,int v){e[++len].x=x;e[len].y=y;e[len].v=v;}
     void init(){
         N=read();M=read();
         while(M--){
             int flag=read(),x,y,v;
             ){
                 x=read();y=read();
                 insert(x,y,);
                 insert(y,x,);
             }
             ){
                 x=read();y=read();v=read();
                 insert(x,y,-v);
             }
             ){
                 x=read();y=read();v=read();
                 insert(y,x,v);
             }
         }
     }
     bool Bellman_Ford(){
         up(i,,N)dis[i]=oo;
         up(i,,N-){
             ;
             up(j,,len)if(dis[e[j].y]>dis[e[j].x]+e[j].v){
                 dis[e[j].y]=dis[e[j].x]+e[j].v;
                 flag=;
             }
             if(flag)break;
         }
         up(j,,len);
         ;
     }
 }
 int main(){
     //freopen("input.in","r",stdin);
     using namespace solution;
     init();
     if(Bellman_Ford())puts("Yes");
     else              puts("No");
     ;
 }

BZOJ1202 [HNOI2005]狡猾的商人&&BZOJ3436小K的农场的更多相关文章

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

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

  2. bzoj3436小K的农场

    bzoj3436小K的农场 题意: n个数,知道m条关系:a-b≥c.a-b≤c或a==b.问是否存在满足所有关系的情况.n≤10000,m≤10000. 题解: 差分约束.因为只要求是否满足,因此最 ...

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

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

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

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

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

    1202: [HNOI2005]狡猾的商人 题目:传送门 题解: 据说是带权并查集!蒟蒻不会啊!!! 可是听说lxj大佬用差分约束A了,于是开始一通乱搞. 设s[i]为前i个月的总收益,那么很容易就可 ...

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

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

  7. [bzoj3436]小K的农场_差分约束

    小K的农场 bzoj-3436 题目大意:给定n个点,每个节点有一个未知权值.现在有m个限制条件,形如:点i比点j至少大c,点i比点j至多大c或点i和点j相等.问是否可以通过给所有点赋值满足所有限制条 ...

  8. BZOJ3436: 小K的农场(差分约束裸题&DFS优化判环)

    3436: 小K的农场 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2111  Solved: 986[Submit][Status][Discus ...

  9. bzoj3436: 小K的农场(差分约束)

    3436: 小K的农场 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1575  Solved: 690[Submit][Status][Discus ...

随机推荐

  1. Linq连接查询之左连接、右连接、内连接、全连接、交叉连接、Union合并、Concat连接、Intersect相交、Except与非查询

    内连接查询 内连接与SqL中inner join一样,即找出两个序列的交集 Model1Container model = new Model1Container(); //内连接 var query ...

  2. 如何解决Windows 10系统下设备的声音问题

    如何解决Windows 10系统下设备的声音问题? 请阅读下面的说明来解决Windows 10设备上的声音问题. 1. 检查设备管理器 打开开始菜单,键入设备管理器, 从出现的结果中选择并打开它. 在 ...

  3. C# 利用反射动态将字符串转换成属性对应的类型值

    /// <summary> /// 为指定对象分配参数 /// </summary> /// <typeparam name="T">对象类型& ...

  4. 很简单的多线程访问python嘿嘿嘿

    import urllib import socket from threading import * url = "http://www.baidu.com/s?ie=UTF-8& ...

  5. oracle 学习笔记

    --2.2 进入和退出oracle数据库--在windows中输入cmd打开命令窗口 然后输入 sqlplu / as sysdba--验证数据库是否安装成功 --select status from ...

  6. 71 fdisk-Linux 的磁盘分区表操作工具。

    语法: fdisk [-l] 装置名称 选项与参数: -l :输出后面接的装置所有的分区内容.若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来. 实例 列出所有分区 ...

  7. Beta--项目冲刺第六天

    胜利在望-- 队伍:F4 成员:031302301 毕容甲 031302302 蔡逸轩 031302430 肖阳 031302418 黄彦宁 会议内容: 1.站立式会议照片: 2.项目燃尽图 3.冲刺 ...

  8. extJs学习基础 容器的介绍

    Viewport: 一个专门的容器用于可视应用领域(浏览器窗口). Viewport渲染自身到网页的documet body区域, 并自动将自己调整到适合浏览器窗口的大小,在窗口大小发生改变时自动适应 ...

  9. KVM 内存虚拟化

    内存虚拟化的概念     除了 CPU 虚拟化,另一个关键是内存虚拟化,通过内存虚拟化共享物理系统内存,动态分配给虚拟机.虚拟机的内存虚拟化很象现在的操作系统支持的虚拟内存方式,应用程序看到邻近的内存 ...

  10. Java面试常考知识点

    1.  什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件. Jav ...