【BZOJ】3436: 小K的农场
3436: 小K的农场
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 938 Solved: 417
[Submit][Status][Discuss]
Description
Input
Output
如果存在某种情况与小K的记忆吻合,输出”Yes”,否则输出”No”
Sample Input
3 1 2
1 1 3 1
2 2 3 2
Sample Output
样例解释
三个农场种植的数量可以为(2,2,1)
HINT
Source
Kpmcup#0 By Greens
入门题!
设点x,y相差c
若x==y,x与y之间连两条权值为0的的边
x-y<=c,y向x连一条权值为c的边
x-y>=c变形为y-x<=c,x向y连一条权值为-c的边
构出一张有向图,利用SPFA在图中找负权环,若有负权环则说明答案不合法(SPFA找负权环应当使用DFS版的)
1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<cstdlib> 5 #include<algorithm> 6 #include<vector> 7 #include<cmath> 8 #include<ctime> 9 #include<cstring> 10 #define yyj(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout); 11 #define llg long long 12 #define maxn 50000 13 #define md 20000 14 #define inf (llg)1e16 15 using namespace std; 16 llg i,j,k,n,m,dl[maxn*10],head,tail,dis[maxn],bj[maxn],js[maxn],heh,top,stack[maxn]; 17 bool f; 18 19 vector <llg> a[maxn],val[maxn]; 20 21 void link(llg x,llg y,llg v) 22 { 23 a[x].push_back(y),val[x].push_back(v); 24 } 25 26 void init() 27 { 28 llg x,y,t,v; 29 cin>>n>>m; 30 for (i=1;i<=m;i++) 31 { 32 scanf("%lld%lld%lld",&t,&x,&y); 33 if (t==3) 34 { 35 link(x,y,0); link(y,x,0); 36 } 37 if (t==2) 38 { 39 scanf("%lld",&v); 40 link(y,x,v); 41 } 42 if (t==1) 43 { 44 scanf("%lld",&v); 45 link(x,y,-v); 46 } 47 } 48 f=true; 49 } 50 51 bool SPFA() 52 { 53 for(llg i=1;i<=n;i++) dis[i]=0,stack[++top]=i,bj[i]=1; 54 llg u,w; 55 while(top>0) 56 { 57 u=stack[top]; top--; bj[u]=0; 58 w=a[u].size(); 59 for(llg i=0;i<w;i++) 60 { 61 llg v=a[u][i]; 62 if(dis[v]>dis[u]+val[u][i]) 63 { 64 dis[v]=dis[u]+val[u][i]; 65 if(!bj[v]) { bj[v]=1; stack[++top]=v; js[v]++; if(js[v]>=n) return false;} 66 } 67 } 68 } 69 return true; 70 } 71 72 int main() 73 { 74 yyj("a"); 75 init(); 76 if (SPFA()) cout<<"Yes"; else cout<<"No"; 77 return 0; 78 }
转载于:https://www.cnblogs.com/Dragon-Light/p/5917075.html
【BZOJ】3436: 小K的农场相关推荐
- BZOJ 3436: 小K的农场( 差分约束 )
orz云神... 真的给跪了...BFS版spfa T 掉了...然后DFS版的就A了...我现在很迷茫.... 这就是个普通的差分约束... ---------------------------- ...
- [BZOJ]3436: 小K的农场
题解: 差分约束 模板题 差分约束系统 联系 最短路 对于操作1:$ a-b\geqslant c\rightarrow b\leqslant a-c $ 也就是说a向b连一条-c的边 对于操作2 ...
- bzoj 3436: 小K的农场(差分约束)
3436: 小K的农场 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1824 Solved: 810 [Submit][Status][Disc ...
- BZOJ 3436 小K的农场 差分约束
Description 背景 小K是个特么喜欢玩MC的孩纸... 描述 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得 一些含糊的信息(共m个 ...
- bzoj 3437 小p的农场
bzoj 3437 小p的农场 思路 \(f[i]=min(f[j]+\sum\limits_{k=j+1}^{i}{b[k]*(i-k)}+a[i])\) \(f[i]=min(f[j]+\sum\ ...
- P1993 小 K 的农场
P1993 小 K 的农场 题解: 农场 a 比农场 b 至少多种植了 c 个单位的作物: 这句话说明:a - b > = c 转化可得 b - a < = - c add(a,b,-c) ...
- bzoj3436小K的农场
bzoj3436小K的农场 题意: n个数,知道m条关系:a-b≥c.a-b≤c或a==b.问是否存在满足所有关系的情况.n≤10000,m≤10000. 题解: 差分约束.因为只要求是否满足,因此最 ...
- 【BZOJ - 3436】小K的农场(差分约束)
题干: 背景 小K是个特么喜欢玩MC的孩纸... 描述 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得 一些含糊的信息(共m个),以下列三种形 ...
- 小K的农场(luogu P1993
题目传送门 题目描述 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三种形式描述: 农场a比农场b至少多种植了 ...
- P1993 小K的农场 (差分约束)
题目描述 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三种形式描述: 农场a比农场b至少多种植了c个单位的作 ...
最新文章
- 微软宣布在机器翻译方面取得突破,中翻英可达人类水平
- Linux命令之 —— grep \ls \ ll \ sed \ bg fg \ ipset \ wc \ ifconfig \ awk
- C# Graphic 绘制圆、三角形、椭圆、图片
- The Internals of PostgreSQL
- SpringBoot中将thymeleaf升级到3.0或以上版本
- linux安卓双系统板子,安卓迷你 PC 主机只要 109 美元,支持 Android 和 Linux 双系统...
- mPaas上线应用检测
- Spring Boot自定义错误页面
- Android 功耗优化(4)---android 7.0低电耗Doze模式
- iptables基础(01)
- 趋势防毒officescan问题心得
- 老农的计算机学习笔记(二)硬件篇
- 9.12测试(二)——国际象棋
- mysql的user表被清空_用delete命令来个不小心删除了user表
- java filter 重定向_在Filter的doFilter中进行重定向 出现异常
- docker实践(2)常用命令和DockerFile详解
- 【局域网音频实时传输、屏幕单播及广播】
- 连接到服务器 ------------------------------ 无法连接到 + SQL Server 请求失败或服务未及时响应....解决思路
- Substrate 基础 -- 教程(Tutorials)
- 精准化测试之:jacoco实现增量代码覆盖率统计