【BZOJ3436】小K的农场

Description

背景
小K是个特么喜欢玩MC的孩纸。。。
描述
小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得
一些含糊的信息(共m个),以下列三种形式描述:农场a比农场b至少多种植了c个单位的作物,农场a比农场b至多
多种植了c个单位的作物,农场a与农场b种植的作物数一样多。但是,由于小K的记忆有些偏差,所以他想要知道存
不存在一种情况,使得农场的种植作物数量与他记忆中的所有信息吻合。

Input

第一行包括两个整数n和m,分别表示农场数目和小K记忆中的信息的数目接下来m行:如果每行的第一个数是1,接
下来有三个整数a,b,c,表示农场a比农场b至少多种植了c个单位的作物如果每行第一个数是2,接下来有三个整数a
,b,c,表示农场a比农场b至多多种植了c个单位的作物如果每行第一个数是3,接下来有两个整数a,b,表示农场a
种植的数量与b一样。1<=n,m,a,b,c<=10000

Output

如果存在某种情况与小K的记忆吻合,输出”Yes”,否则输出”No”

Sample Input

3 3
3 1 2
1 1 3 1
2 2 3 2

Sample Output

Yes
样例解释
三个农场种植的数量可以为(2,2,1)

题解:裸的差分约束

a≥b+c  ->  b≤a-c
a≤b+c  ->  a≤b+c
a=b    ->  a≤b,b≤a

然后连边判负环

  1. #include <cstdio>
  2. #include <iostream>
  3. #include <cstring>
  4. #include <queue>
  5. using namespace std;
  6. const int maxn=10010;
  7. int n,m,cnt;
  8. int to[maxn<<1],next[maxn<<1],head[maxn],val[maxn<<1],dis[maxn],inq[maxn],len[maxn];
  9. queue<int> q;
  10. void add(int a,int b,int c)
  11. {
  12. to[cnt]=b,val[cnt]=c,next[cnt]=head[a],head[a]=cnt++;
  13. }
  14. int main()
  15. {
  16. scanf("%d%d",&n,&m);
  17. int i,a,b,c,d,u;
  18. memset(head,-1,sizeof(head));
  19. for(i=1;i<=m;i++)
  20. {
  21. scanf("%d%d%d",&d,&a,&b);
  22. switch(d)
  23. {
  24. case 1:scanf("%d",&c),add(a,b,-c); break;
  25. case 2:scanf("%d",&c),add(b,a,c); break;
  26. case 3:add(a,b,0),add(b,a,0); break;
  27. }
  28. }
  29. for(i=1;i<=n;i++) q.push(i),inq[i]=1,len[i]=1;
  30. while(!q.empty())
  31. {
  32. u=q.front(),q.pop(),inq[u]=0;
  33. for(i=head[u];i!=-1;i=next[i])
  34. {
  35. if(dis[to[i]]>dis[u]+val[i])
  36. {
  37. dis[to[i]]=dis[u]+val[i];
  38. len[to[i]]=len[u]+1;
  39. if(len[to[i]]>n)
  40. {
  41. printf("No");
  42. return 0;
  43. }
  44. if(!inq[to[i]]) inq[to[i]]=1,q.push(to[i]);
  45. }
  46. }
  47. }
  48. printf("Yes");
  49. return 0;
  50. }

【BZOJ3436】小K的农场 差分约束的更多相关文章

  1. P1993 小K的农场 && 差分约束

    首先第一篇讨论的是差分约束系统解的存在 差分约束系统是有 \(n\) 个变量及 \(m\) 个(如 \(x_{i} - x_{j} \leq a_{k}\) )关系组成的系统 差分约束解的求解可以转化 ...

  2. 小K的农场 差分约束

    题目描述 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三种形式描述: 农场a比农场b至少多种植了c个单位的作 ...

  3. BZOJ 3436: 小K的农场 差分约束

    题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=3436 题解: 裸的差分约束: 1.a>=b+c  ->  b<=a-c ...

  4. bzoj3436小K的农场

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

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

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

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

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

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

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

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

    3436: 小K的农场 题目:传送门 题解: 查分基础: t==1  a>=b+c t==2  b>=a-c t==3  a>=b+0 b>=a+0 跑最长路一A 代码: #i ...

  9. 洛谷P1993 小K的农场 [差分约束系统]

    题目传送门 小K的农场 题目描述 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三种形式描述: 农场a比农场b ...

随机推荐

  1. EF6 Code First 模式更新数据库架构

    定义好实体类和上下文类 在 Package Manager Console 输入以下命令 1.Enable-Migrations 启用数据迁移功能,该命令通常会在项目根目录下生成 Migrations ...

  2. Genymotion INSTALL_FAILED_CPU_ABI_INCOMPATIBLE

    出现这个错误的原因是Genymotion默认的处理器是x86的,不是arm的.所以安装的时候会出错,仅仅要把x86转换成arm就能够了. 转换方法: 1.下载转换的zip文件:X86 to ARM 2 ...

  3. 02、获取 WebView 控件中,加载的 HTML 网页内容

    在开发 app 的时候,WebView 是经常使用的控件.而且有时需要向 WebView 中的 html 内容 注入额外的 js 进行操作.这里记录一下在当前 WebView 控件中,获取 html ...

  4. JS中同步与异步的理解

    你应该知道,javascript语言是一门“单线程”的语言,不像java语言,类继承Thread再来个thread.start就可以开辟一个线程,所以,javascript就像一条流水线,仅仅是一条流 ...

  5. linux 编译kernel与svn版本冲突解决方法 [drivers/gpu/mali/mali/common/mali_kernel_core.o] 错误 1

    问题: 系统正常编译linux系统kernel,安装svn后,kernel编译出错. 错误: CHK     include/linux/version.h  CHK     include/gene ...

  6. linux命令之fuser

    Usage: fuser [ -a | -s | -c ] [ -n SPACE ] [ -SIGNAL ] [ -kimuv ] NAME... [ - ] [ -n SPACE ] [ -SIGN ...

  7. 绕过IE10直接安装VS2013

    参考资料:http://blog.163.com/qimo601%40126/blog/static/1582209320143354446462/ 这SB设定我就懒得说了,安个IE10要安装N多WI ...

  8. JAVA第一个窗体小程序

    import java.awt.*;public class Day1015_Frame{    public static void main(String[] args)    {         ...

  9. php扩展安装

    [root@129-2-10-2 src]# cat kuozhan.sh #!/bin/bash###install redis extend #########cd /usr/local/srct ...

  10. MongoDB助力快速搭建物流订单系统

    简介 快递物流系统里最常见的一种业务类型就是订单的查询和记录.订单的特点是随着递送过程,订单数据需要随时更新路径.数据结构上需要可以灵活应对,这点非常符合Document模型,并且MongoDB支持G ...