摘要: 题意:有 n 个鸟,知道了每只鸟的活动半径和每个鸟窝在一开的时候有的草的数量,有m 个草堆,每个草堆有一定数量的草,知道了每个草堆的位置, 所有能被鸟捡到即被鸟覆盖到地方的草到最后都会被捡完,问是否存在一种情况使得所有鸟最后拥有的草的数量不超过第一只鸟用有的草的数量。分析: 首先让第一只鸟将可以捡到的草全部捡完,这时候拥有的草的数量为第一只鸟最后所能拥有的最多的草的数量记为k,限制其他鸟可以拥有的 草的数量不超过 k,看最后这些鸟能否将能捡的草捡完。 建图: 源点 s=0,汇点 t=(n-1)+m+1 鸟的编号1..n-1,草堆编号n..n+m-1 在源点和每只鸟之间连一条边容量设为 k, 如 阅读全文
posted @ 2012-09-01 14:25 'wind 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 题意: 有 n 个队伍,给出m 个关系,判断是否有环,或者有多种排序方式,或者排序方式唯一。分析:拓扑排序,如果在排序过程中出队的次数超过 N 说明有环,否则如果在同一层入队的有多个,则说明有多种情况。#include<stdio.h>#include<string.h>#include<math.h>#define maxn 10005#define clr(x)memset(x,0,sizeof(x))struct node{ int to,next;}e[1000005];int tot;int head[maxn];void add(int s,in 阅读全文
posted @ 2012-09-01 14:14 'wind 阅读(226) 评论(0) 推荐(0) 编辑