【题目大意】

总共n个农场,有以下三种描述:农场a比农场b至少多种植了c个单位的作物,农场a比农场b至多多种植了c个单位的作物,农场a与农场b种植的作物数一样多。问是否有可能性。

【思路】

农场a比农场b至少多种植了c个单位的作物:a>=b+c → b<=a-c,由a向b连一条-c的边。

农场a比农场b至多多种植了c个单位的作物:a<=b+c,由b向a连一条c的边。

农场a与农场b种植的作物数一样多:a=b → b<=a<=b,互相连一条0的边。

SPFA判断负环,要用DFS版本的来。DFS版本的直接参考了rausen学长的……真是快到飞起(;′⌒`)

 #include<bits/stdc++.h>
using namespace std;
const int MAXN=+;
struct edge
{
int to,len;
};
int n,m;
vector<edge> E[MAXN];
int vis[MAXN],dis[MAXN],flag; void addedge(int u,int v,int w)
{
E[u].push_back((edge){v,w});
} void init()
{
scanf("%d%d",&n,&m);
for (int i=;i<=m;i++)
{
int op,a,b,c;
scanf("%d",&op);
if (op==)//a-b>=c
{
scanf("%d%d%d",&a,&b,&c);
addedge(a,b,-c);
}
if (op==)
{
scanf("%d%d%d",&a,&b,&c);
addedge(b,a,c);
}
if (op==)
{
scanf("%d%d",&a,&b);
addedge(a,b,);addedge(b,a,);
}
}
} void spfa(int fr)
{
if (vis[fr])
{
flag=;
return;
}
vis[fr]=;
for (int i=;i<E[fr].size();i++)
{
int to=E[fr][i].to,len=E[fr][i].len;
if (dis[fr]+len<dis[to])
{
dis[to]=dis[fr]+len;
spfa(to);
if (flag) return;
}
}
vis[fr]=;
} void solve()
{
memset(vis,,sizeof(vis));
for (int i=;i<=n;i++)
{
spfa(i);
if (flag) break;
}
puts(flag?"No":"Yes");
} int main()
{
init();
solve();
return ;
}

【差分约束系统/DFS版SPFA】BZOJ3436-小K的农场的更多相关文章

  1. bzoj3436小K的农场

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

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

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

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

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

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

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

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

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

  6. BZOJ3436 小K的农场

    Description 背景 小K是个特么喜欢玩MC的孩纸... 描述 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得 一些含糊的信息(共m个 ...

  7. BZOJ3436——小K的农场

    1.题意:大概是给一些制约限制,问是否存在合法解 2.分析:我们来观察这三个限制 农场a比农场b至少多种植了c个单位的作物     可以变成b 比 a至多多种了-c 农场a比农场b至多多种植了c个单位 ...

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

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

  9. 洛谷P1993 小K的农场

    思路是差分约束+dfs版SPFA. 首先来思考差分约束的过程,将题目给出的式子进行转化: 农场a比农场b至少多种植了c个单位的作物, SPFA我们考虑跑最短路,那么要让SPFA中满足的式子就是if(d ...

随机推荐

  1. css_清除浮动的4种方式

    浮动布局和定位布局为css中布局的常用的两种布局方式,而且兼容性会比较好.随着flex的流行,以后会是主流,新的东西好用,兼容不太好.IE10以下不兼容flex布局. float布局会脱离文档流,对页 ...

  2. 使用Picker的时候,让input输入框使用焦点,手机键盘不弹出

    $("#address").click(function(){ document.activeElement.blur(); })

  3. win7 64位mysql安装及navicat 解压版

    教程:http://jingyan.baidu.com/article/f3ad7d0ffc061a09c3345bf0.html Mysql修改设置root密码的命令及方法:http://jingy ...

  4. 大数据系列之数据仓库Hive原理

    Hive系列博文,持续更新~~~ 大数据系列之数据仓库Hive原理 大数据系列之数据仓库Hive安装 大数据系列之数据仓库Hive中分区Partition如何使用 大数据系列之数据仓库Hive命令使用 ...

  5. error while loading shared libraries: libtest.so: cannot open shared object file: No such file or directory

    一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared libraries: libevent-1.4.s ...

  6. 数据库-mysql数据操作

    一:mysql 数据的插入 语法 以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法: INSERT INTO table_name ( field1, field2,...f ...

  7. javascript本地缓存方案-- 存储对象和设置过期时间

    cz-storage 解决问题 1. 前端js使用localStorage的时候只能存字符串,不能存储对象 cz-storage 可以存储 object undefined number string ...

  8. POJ 3280 Cheapest Palindrome(区间DP求改成回文串的最小花费)

    题目链接:http://poj.org/problem?id=3280 题目大意:给你一个字符串,你可以删除或者增加任意字符,对应有相应的花费,让你通过这些操作使得字符串变为回文串,求最小花费.解题思 ...

  9. oracle创建job和删除job

    https://blog.csdn.net/u010001043/article/details/56479774

  10. 解决Python爬虫使用requests包控制台输出乱码问题

    输出爬取的信息为乱码! 解决办法 爬取下来的编码是ISO-8859-1格式,需要转化为utf-8格式,加一句response.encoding = "utf8"