【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
入门题!
设点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版的)
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstdlib>
#include<algorithm>
#include<vector>
#include<cmath>
#include<ctime>
#include<cstring>
#define yyj(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout);
#define llg long long
#define maxn 50000
#define md 20000
#define inf (llg)1e16
using namespace std;
llg i,j,k,n,m,dl[maxn*],head,tail,dis[maxn],bj[maxn],js[maxn],heh,top,stack[maxn];
bool f; vector <llg> a[maxn],val[maxn]; void link(llg x,llg y,llg v)
{
a[x].push_back(y),val[x].push_back(v);
} void init()
{
llg x,y,t,v;
cin>>n>>m;
for (i=;i<=m;i++)
{
scanf("%lld%lld%lld",&t,&x,&y);
if (t==)
{
link(x,y,); link(y,x,);
}
if (t==)
{
scanf("%lld",&v);
link(y,x,v);
}
if (t==)
{
scanf("%lld",&v);
link(x,y,-v);
}
}
f=true;
} bool SPFA()
{
for(llg i=;i<=n;i++) dis[i]=,stack[++top]=i,bj[i]=;
llg u,w;
while(top>)
{
u=stack[top]; top--; bj[u]=;
w=a[u].size();
for(llg i=;i<w;i++)
{
llg v=a[u][i];
if(dis[v]>dis[u]+val[u][i])
{
dis[v]=dis[u]+val[u][i];
if(!bj[v]) { bj[v]=; stack[++top]=v; js[v]++; if(js[v]>=n) return false;}
}
}
}
return true;
} int main()
{
yyj("a");
init();
if (SPFA()) cout<<"Yes"; else cout<<"No";
return ;
}
【BZOJ】3436: 小K的农场的更多相关文章
- bzoj 3436小K的农场
3436: 小K的农场 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 2327 Solved: 1105 [Submit][Status][Discu ...
- [bzoj]3436 小K的农场
[题目描述] 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三种形式描述:农场a比农场b至少多种植了c个单位的 ...
- BZOJ 3436: 小K的农场 差分约束
题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=3436 题解: 裸的差分约束: 1.a>=b+c -> b<=a-c ...
- BZOJ3436: 小K的农场(差分约束裸题&DFS优化判环)
3436: 小K的农场 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2111 Solved: 986[Submit][Status][Discus ...
- bzoj3436: 小K的农场(差分约束)
3436: 小K的农场 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1575 Solved: 690[Submit][Status][Discus ...
- bzoj3436: 小K的农场(差分约束)
3436: 小K的农场 题目:传送门 题解: 查分基础: t==1 a>=b+c t==2 b>=a-c t==3 a>=b+0 b>=a+0 跑最长路一A 代码: #i ...
- 【BZOJ3436】小K的农场(差分约束)
[BZOJ3436]小K的农场(差分约束) 题面 由于BZOJ巨慢无比,使用洛谷美滋滋 题解 傻逼差分约束题, 您要是不知道什么是差分约束 您就可以按下\(Ctrl+W\)了 #include< ...
- 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\ ...
- 2014.7.7 模拟赛【小K的农场】
3.小K的农场(farm.pas/cpp/c) [题目描述] 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三 ...
随机推荐
- 解决Windows下网络原因Composer安装失败问题
由于Composer镜像都在国外,所以直接在官网下载Windows Installer后安装很多情况下是无法成功安装的. 解决办法: 1,将php添加到系统环境变量,并开启openssl扩展. 2,点 ...
- [Python] 删除指定目录下后缀为 xxx 的过期文件
import os import time import datetime def should_remove(path, pattern, days): if not path.endswith(p ...
- vue.js在windows本地下搭建环境和创建项目
Vue.js是一套构建用户界面的渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合.另一方面,Vu ...
- zabbix通过第三方插件percona监控mysql数据库
zabbix通过第三方插件percona监控mysql数据库 ...
- 自定义cell侧滑删除
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { return Y ...
- 戴尔3542安装ubuntu时出现:failed to lead ldlinux.c32
解决办法: 1. 开机未进入系统是连续敲击F2,进入BIOS2.在 BIOS 的Boot菜单下,将Secure Boot 改为 Disabled3. 将Boot List Option 改为 Lega ...
- JSP中文乱码总结
大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着大家,现把JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考.首先了解一下Java中文问题的由来: Java的内核和class文 ...
- 基于webpack使用ES6新特性(转载)
本文转载自: http://www.tuicool.com/articles/vye2ea6
- OC的总结 ***希望对大家有帮助*** ---高小杰
1. NSLog 是Foundation提供的一个输出函数,它的功能非常强大,不仅可以输出字符串,还可以输出各种对象,到后面程序还会见到大量的使用NSLog()函数. 2. N ...
- sqlserver日志管理(转载)
sql 在使用中每次查询都会生成日志,但是如果你长久不去清理,可能整个硬都堆满哦,笔者就遇到这样的情况,直接网站后台都进不去了.下面我们一起来学习一下如何清理这个日志吧 SQL2005清空删除 ...