bzoj 3373: [Usaco2004 Mar]Lying Livestock 说谎的牲畜
3373: [Usaco2004 Mar]Lying Livestock 说谎的牲畜
Description
Input
Output
Sample Input
3 1 2
1 3 1
1 3 2
2 2 1
Sample Output
样例说明
3头奶牛给出了4个回答.奶牛1说3>1,3>2,奶牛2说2>1,奶牛3说1>2.当然“>”的意思是“吃得多”. 显然,2号和3号的话是矛盾的.它们都有可能说谎.如果1号说谎则2,3都没说谎,那是不可能的.所以,1号说的一定是实话.
#include<stdio.h>
#include<iostream>
using namespace std;
const int N=;
const int M=;
int n,m,i,j,ans,w,a[M],x[M],y[M],dis[N],s[N],p[N],g[M];
int tot,head[N],Next[M],to[M],v[M];
void add(int x,int y,int z)
{
tot++;
to[tot]=y;
v[tot]=z;
Next[tot]=head[x];
head[x]=tot;
}
int spfa(int X)
{
int x,i;
w=;
for(i=;i<=n;i++)
dis[i]=,p[i]=,s[i]=,g[++w]=i;
while(w)
{
x=g[w--];
if(s[x]>=n) return ;
p[x]=;
for(i=head[x];i!=-;i=Next[i])
if(dis[x]+v[i]<dis[to[i]])
{
dis[to[i]]=dis[x]+v[i];
if(p[to[i]]==)
{
p[to[i]]=;
g[++w]=to[i];
s[to[i]]++;
}
}
}
return ;
}
int main()
{
scanf("%d%d",&n,&m);
for(i=;i<=m;i++)
scanf("%d%d%d",&a[i],&x[i],&y[i]);
for(i=;i<=n;i++)
{
tot=;
for(j=;j<=n;j++) head[j]=-;
for(j=;j<=m;j++)
if(a[j]==i) add(y[j],x[j],);else add(x[j],y[j],-);
ans+=spfa(i);
}
cout<<ans;
return ;
}
bzoj 3373: [Usaco2004 Mar]Lying Livestock 说谎的牲畜的更多相关文章
- BZOJ 3373: [Usaco2004 Mar]Lying Livestock 说谎的牲畜( 差分约束 )
枚举每头牛, 假设它在说谎, 建图判圈就行了...为啥水题都没人来写.. --------------------------------------------------------------- ...
- BZOJ 3375: [Usaco2004 Mar]Paranoid Cows 发疯的奶牛( set )
果然写得短就跑得慢... 直接用set就行了(你要写棵平衡树也可以).没有包含的话, 假如L(i) <= L(j), 那么R[i] <= R[j]. 所以从小到大扫, 每次查找左端点小于当 ...
- DP经典 BZOJ 1584: [Usaco2009 Mar]Cleaning Up 打扫卫生
BZOJ 1584: [Usaco2009 Mar]Cleaning Up 打扫卫生 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 419 Solve ...
- bzoj3374[Usaco2004 Mar]Special Serial Numbers 特殊编号*
bzoj3374[Usaco2004 Mar]Special Serial Numbers 特殊编号 题意: 求比一个数大的最小的一半以上的数位相同的数.数位数≤100. 题解: 模拟题.从低位枚举到 ...
- bzoj3375[Usaco2004 Mar]Paranoid Cows 发疯的奶牛*
bzoj3375[Usaco2004 Mar]Paranoid Cows 发疯的奶牛 题意: 依次给出n只奶牛的产奶时间段,求最大的k使得前k只奶牛不存在一个时间段被另一个时间段完全覆盖的情况.n≤1 ...
- BZOJ 3389: [Usaco2004 Dec]Cleaning Shifts安排值班
题目 3389: [Usaco2004 Dec]Cleaning Shifts安排值班 Time Limit: 1 Sec Memory Limit: 128 MB Description ...
- BZOJ 3384: [Usaco2004 Nov]Apple Catching 接苹果( dp )
dp dp( x , k ) = max( dp( x - 1 , k - 1 ) + *** , dp( x - 1 , k ) + *** ) *** = 0 or 1 ,根据情况 (BZOJ 1 ...
- BZOJ 3357: [Usaco2004]等差数列
3357: [Usaco2004]等差数列 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 338 Solved: 160[Submit][Statu ...
- BZOJ 1597: [Usaco2008 Mar]土地购买 [斜率优化DP]
1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4026 Solved: 1473[Submit] ...
随机推荐
- A题 hdu 1235 统计同成绩学生人数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1235 统计同成绩学生人数 Time Limit: 2000/1000 MS (Java/Others) ...
- 2.0 docker安装
问题列表: Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again 解:处 ...
- Vue组件-组件的事件
自定义事件 通过prop属性,父组件可以向子组件传递数据,而子组件的自定义事件就是用来将内部的数据报告给父组件的. <div id="app3"> <my-com ...
- 2015多校第7场 HDU 5378 Leader in Tree Land 概率DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5378 题意:一棵n个节点的树.对其节点进行标号(1~n).求恰好存在k个节点的标号是其节点所在子树的最 ...
- STL不同容器的使用方法
以下内容摘自:http://blog.csdn.net/u014465639/article/details/70241850 1.vector(需要导入头文件#include <vector& ...
- 苹果电脑Mac OS系统重装图文详解
苹果电脑Mac OS系统重装图文详解 本文来自于[系统之家] www.xp85.com现在电脑都很强大,可是也很脆弱,常常需要你去维护,甚至经常需要你重装系统,那么Mac OS又如何重装系统呢?刚刚使 ...
- PCA和SVD
一.PCA(Principal Component Analysis) 主成分分析,数据从原来的坐标系转换到新的坐标系,只保留新坐标系中的前面几个坐标轴,即对数据进行了降维处理 1.算法描述 (1)第 ...
- Leetcode 之Add Binary(29)
比较简单,细节:先将字符串翻转,注意进位. string addBinary(string a, string b) { string result; int len = a.size() > ...
- lnmp的安装--php
1.下载php源码 wget http://cn2.php.net/distributions/php-5.6.3.tar.gz tar zxvf php-5.6.3.tar.gz cd php-5. ...
- 自动关闭IO流-jdk1.7版本
public static void main(String[] args) throws IOException { try( FileInputStream fis = new FileInput ...