BZOJ3436_小K的农场_KEY
差分约束基础,对于每种关系建不同的边,求是否有负环。
code:
/**************************************************************
Problem: 3436
User: yekehe
Language: C++
Result: Accepted
Time:252 ms
Memory:10916 kb
****************************************************************/ #include <cstdio>
#include <vector>
#include <cstring>
using namespace std; char tc()
{
static char fl[],*A=fl,*B=fl;
return A==B&&(B=(A=fl)+fread(fl,,,stdin),A==B)?EOF:*A++;
} int read()
{
char c;while(c=getchar(),(c<'' || c>'') && c!='-');
int x=,y=;c=='-'?y=-:x=c-'';
while(c=getchar(),c>='' && c<='')x=x*+c-'';return x*y;
} const int MAXN=; int N,M;
int o,x,y,z;
int dist[MAXN],vis[MAXN];
bool flag;
vector < pair<int, int> > a[MAXN]; void cf_spfa(int x)
{
int to,val;
for(int i=;i<a[x].size();i++){
to=a[x][i].first;val=a[x][i].second;
if(dist[x]+val<dist[to]){
if(vis[to]){
flag=true;
return ;
}
else {
dist[to]=dist[x]+val;
vis[to]=;
cf_spfa(to);
}
}
}
vis[x]=false;
}//SPFA判负环 int main()
{
// freopen("x.txt","r",stdin);
N=read(),M=read();
for(int i=; i<=M; i++){
o=read();
if(o==) {x=read(),y=read(),z=read();a[y].push_back(make_pair(x,-z));}
if(o==) {x=read(),y=read(),z=read();a[x].push_back(make_pair(y,z));}
if(o==) {x=read(),y=read();a[x].push_back(make_pair(y,)),a[y].push_back(make_pair(x,));}
}//建边
for(int i=; i<=N; i++) {memset(dist,,sizeof(dist));cf_spfa(i);if(flag)break;}
if(flag)puts("No");
else puts("Yes");
return ;
}
BZOJ3436_小K的农场_KEY的更多相关文章
- 【BZOJ】3436: 小K的农场
3436: 小K的农场 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 938 Solved: 417[Submit][Status][Discuss ...
- 2014.7.7 模拟赛【小K的农场】
3.小K的农场(farm.pas/cpp/c) [题目描述] 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三 ...
- 【BZOJ3436】小K的农场(差分约束)
[BZOJ3436]小K的农场(差分约束) 题面 由于BZOJ巨慢无比,使用洛谷美滋滋 题解 傻逼差分约束题, 您要是不知道什么是差分约束 您就可以按下\(Ctrl+W\)了 #include< ...
- BZOJ_3436_小K的农场_差分约束
BZOJ_3436_小K的农场_差分约束 题意: 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得 一些含糊的信息(共m个),以下列三种形式描述 ...
- P1993 小K的农场
P1993 小K的农场比较裸的差分约束,只是我判负环的时候sb了... 有负环意味着无解 #include<iostream> #include<cstdio> #includ ...
- 洛谷 P1993 小K的农场 解题报告
P1993 小K的农场 题目描述 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三种形式描述: 农场a比农场b ...
- P1993 小K的农场 && 差分约束
首先第一篇讨论的是差分约束系统解的存在 差分约束系统是有 \(n\) 个变量及 \(m\) 个(如 \(x_{i} - x_{j} \leq a_{k}\) )关系组成的系统 差分约束解的求解可以转化 ...
- BZOJ3436: 小K的农场(差分约束裸题&DFS优化判环)
3436: 小K的农场 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2111 Solved: 986[Submit][Status][Discus ...
- 洛谷P1993 小K的农场 [差分约束系统]
题目传送门 小K的农场 题目描述 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三种形式描述: 农场a比农场b ...
随机推荐
- Android(java)学习笔记210:Android线程形态之 IntentService
1. IntentService原理 IntentService是一种特殊的Service,既然是Service,使用的时候记得在AndroidManifest清单文件中注册. 并且它是一个抽象类,因 ...
- Tomcat组件启动流程图
看到一张关于Tomcat组件启动流程图,觉得还可以,收藏.
- HDOJ 1528 Card Game Cheater
版权声明:来自: 码代码的猿猿的AC之路 http://blog.csdn.net/ck_boss https://blog.csdn.net/u012797220/article/details/3 ...
- 【转】Android单帧动画Rotate旋转
项目有一个需求,有一个刷新按钮,上面放着一个常见的静止的刷新圆圈,如下图: 一旦用户按了刷新按钮,需要让这个刷新圆圈转动起来,让用户感觉到程序还在运行着,而不是卡死了. 有两个思路,一是将这个图按照旋 ...
- mybatis实现最简单的增删改查
1.数据库设计 2.项目结构(针对User不用管Blogger) User.java package com.yunqing.mybatis.bean; public class User { pri ...
- Git如何从github上pull别人的项目
1:使用git方式导入项目 菜单-File->import->Git->Projects from Git 2:选择某个服务器上的资源 3:选择需要pull的地址 后面需要自己加上 ...
- STM32之关闭JTAG
1.有些时候不想用JTAG口(而用SWJ在线调试),把JTAG暂用的IO通过remap出来使用 2.比如48 pin的STM32F103CBT6单片机: GPIO_PinRemapConfig(GPI ...
- type和 #define
1.#define INT8U unsigned char : 用INT8U代替unsigned char 2.typedef typedef int size; 此声明定义了一个int的同义字 ...
- 用js写三个数,让三个数从小到大排列
console.log('请输入三个数:'); let num1 = readline.question() - 0; let num2 = readline.question() - 0; let ...
- 使用OrgChart插件生成家谱组织结构图
1.orgchart插件: github地址:https://github.com/dabeng/OrgChart 2.前端代码: //1.加载树形数据:ajax请求获取json格式的数据(flag参 ...