【codevs 4246】奶牛的身高 差分约束
来源:互联网 发布:西安淘宝大学讲师 编辑:程序博客网 时间:2024/04/29 10:08
用差分约束乱搞吧……
在那次月赛里算个水题了……
点击就送屠龙宝刀
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <queue>using namespace std;const int MAXN = 100000 + 5;const int MAXM = 100000 + 5;struct edge{ int f,t,v;}l[MAXM * 2];int first[MAXN],next[MAXN * 2],tot;int dis[MAXN];bool use[MAXN];bool in[MAXN];void init(){ memset(first,0xfff,sizeof(first)); memset(use,0,sizeof(use)); memset(dis,0,sizeof(dis)); memset(in,0,sizeof(in)); tot = 0; return;}void build(int f,int t,int v){ l[++tot] = (edge){f,t,v}; next[tot] = first[f]; first[f] = tot; return;}queue <int> q;bool bfs(int u){ while(!q.empty()) q.pop(); q.push(u); use[u] = true; while(!q.empty()) { u = q.front(); q.pop(); for(int i = first[u];i != -1;i = next[i]) { int v = l[i].t; if(use[v]) if(dis[v] != dis[u] + l[i].v) return false; dis[v] = dis[u] + l[i].v; if(!use[v]) q.push(v); use[v] = true; } } return true;}int T,n,m,f,t,v;int main(){ scanf("%d",&T); while(T--) { init(); scanf("%d %d",&n,&m); for(int i = 1;i <= m;i ++) { scanf("%d %d %d",&t,&f,&v); build(f,t, v); build(t,f,-v); } for(int i = 1;i <= n;i ++) if(!bfs(i)) { puts("Bessie is blind."); goto cont; } puts("Bessie's eyes are good"); cont: continue; } return 0;}
1 0
- 【codevs 4246】奶牛的身高 差分约束
- 奶牛的身高(差分约束)
- Codevs 4246 奶牛的身高
- [CODEVS P4246]奶牛的身高
- 4246 奶牛的身高
- codevs月赛 奶牛的身高
- 【CODEVS 1242】布局 SPFA + 差分约束
- codevs 2404 糖果(差分约束)
- Codevs 1768 种树 3(差分约束)
- poj 3169 差分约束(奶牛排队)
- wikioi 1242 布局(奶牛排队) 差分约束
- Codevs4246 奶牛的身高
- 差分约束的学习
- 差分约束的做法
- Codevs 1242 布局 2005年USACO(差分约束)
- 【图-差分约束】 差分约束
- 我理解的差分约束。
- poj3169 layout差分约束的证明。。。
- UVA - 1152 4 Values whose Sum is 0
- Linux下*.tar.gz文件解压缩命令
- Spine输出资源一键入Unity3D工具代码
- Vsftpd配合脚本实现目录配额
- aliyun的CentOS yum源
- 【codevs 4246】奶牛的身高 差分约束
- jquery easyloader
- CDR笔记
- hadoop相关指令
- 序列化和反序列化的概念
- [Nginx]ngx_http_top_header_filter地址为0
- 观察者模式
- AppCan邹优镇:移动改变生产,构建企业核心竞争力
- 输入一个4位数,要求输出这4个数字字符,每两个数字间空一个空格。求解惑。哪里不对?