差分约束第三题

传送门:

很明显的差分约束,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. win8/8.1 免密码登录设置

    http://www.ehow.com/how_8013338_start-windows-password.html 原文见上方链接 1,win+r调出命令输入窗口,输入 netplwiz 回车 2 ...

  2. 禁用Win10显卡更新

    右键This PC-Properties-Advanced system settings-选择Hardware这个tab-Device installation settings选择No

  3. Matlab中的向量

    1.             向量的创建 1)直接输入: 行向量:a=[1,2,3,4,5] 列向量:a=[1;2;3;4;5] 2)用“:”生成向量 a=J:K 生成的行向量是a=[J,J+1,…, ...

  4. android studio用法笔记

    1.每次创建新工程的时候,就会“check sdk repository”,然而这个进度条一动不动,解决方法:file>setting>plugins>sdk updater禁用就行 ...

  5. C# has three timers

    结论 *1.窗体timer和线程timer.计时器timer不同,因为后两者dispose之后,GC可以收集,而前者无法收集 *2.如果一个对象的成员函数正在被执行,那么这个对象肯定不会被收集 *3. ...

  6. 东大OJ-1588: Routing Table

    题目描述 In the computer network, a Router is a device which finds an optimal way to transmit the datagr ...

  7. 删除root子目录,如何恢复子目录配置文件

    手贱,一不小心rm -rf 问题描述:删除/root/子目录文件(含隐藏配置文件)shell变成-bash-4.2#,如何恢复原貌 解决方法: root用户进入,自己配置相关文件:mkdir /roo ...

  8. android开发------第一个android程序

    好吧,现在我们就一起来写第一个android程序,看它带给了我们什么.sdk的使用和虚拟机的创建我就不说了.项目创建过程先略过,不太重要. 那第一个程序我们能学到什么知识呢?一起看吧.^-^ 在IDE ...

  9. Android中的各种单位

    px(像素):屏幕上的点.in(英寸):长度单位.mm(毫米):长度单位.pt(磅):1/72英寸.dp(与密度无关的像素):一种基于屏幕密度的抽象单位.在每英寸160点的显示器上,1dp = 1px ...

  10. JS是按值传递还是按引用传递

    按值传递(call by value)是最常用的求值策略:函数的形参是被调用时所传实参的副本.修改形参的值并不会影响实参. 按引用传递(call by reference)时,函数的形参接收实参的隐式 ...