差分约束第三题

传送门:

很明显的差分约束,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. 发布新博客皮肤red_autumnal_leaves

    感谢sevennight为大家精心设计了一款博客皮肤——red_autumnal_leaves! [名称] red_autumnal_leaves[标题] 红叶[设计者] sevennight[简介] ...

  2. nodejs实现Websocket的数据接收发送

    在去年的时候,写过一篇关于websocket的博文:http://www.cnblogs.com/axes/p/3586132.html ,里面主要是借助了nodejs-websocket这个插件,后 ...

  3. How to remove a batch of VMs and related Disks

    Foreword Need to remove a batch of VMs, which named with same prefix or belong to same Cloud Service ...

  4. 木耳听歌记---Clip+安装Rockbox

    黑五嫌着无聊,在什么值得买的诱惑下从美国亚马逊买了一个Clip+ 8GB版本,不为别的,就为了一直听别人说可以装Rockbox,谁让咱的魅族MX2无法安装这听歌神器来. 转运过程就不说了, 历时一个多 ...

  5. Windows10一周年庆典壁纸

    example: 下载:http://pan.baidu.com/s/1b55D5k

  6. c/c++模板的定义和实现分开的问题及其解决方案

    注意c/c++模板的定义和实现- -                                       定义一个类一般都是在头文件中进行类声明,在cpp文件中实现,但使用模板时应注意目前的C ...

  7. LINUX 配置IP

    1. 用命令查看一下IP配置:ifconfig, 修改网络配置文件  vi  /etc/sysconfig/network-scripts/ifcfg-eht0 2.但是,很多时候,较难记住里面文件的 ...

  8. 转 ext文件系统及块组

    一.文件系统概述 1. 引导块 前文中介绍过磁盘需要进行分区和格式化,才能创建文件系统并使用,那么一块已经被各式化了分区其结构是什么样的呢?分区是按照柱面来划分的,而柱面包含的是磁道,磁道上包含的是扇 ...

  9. 我的第一个jsp程序-实现注册登录留言功能

    1,注册功能,包括两个页面 zhuce.jsp注册页面 <%@ page language="java" contentType="text/html; chars ...

  10. nginx正向代理,反向代理,透明代理(总结)

    1正向代理 正向代理,也就是传说中的代理,他的工作原理就像一个跳板, 简单的说, 我是一个用户,我访问不了某网站,但是我能访问一个代理服务器 这个代理服务器呢,他能访问那个我不能访问的网站 于是我先连 ...