bzoj1340: [Baltic2007]Escape逃跑问题
来源:互联网 发布:如何导入数据到excel 编辑:程序博客网 时间:2024/05/16 08:30
传送门
我们大力拆点,在相邻两个距离小于等于200的点连边
然后S向离上边界小于等于100的点连边
离下边界小于等于100的点向T连边
大力最小割一点不虚。
#include<bits/stdc++.h>#define N 505using namespace std;int head[N],q[N],dis[N];int tot=1,l,w,n,S,T,ans;struct edge{int to,next,f;}e[N*N];struct P{int x,y;}p[N];long long sqr(int x){ return 1ll*x*x;}void add(int x,int y,int z){ e[++tot]=(edge){y,head[x],z}; head[x]=tot; e[++tot]=(edge){x,head[y],0}; head[y]=tot;}bool spfa(){ memset(dis,-1,sizeof(dis)); dis[S]=0; q[1]=S; for (int h=0,t=1;h!=t;) for (int x=q[++h],i=head[x];i;i=e[i].next) if (dis[e[i].to]==-1&&e[i].f) dis[e[i].to]=dis[x]+1,q[++t]=e[i].to; return dis[T]!=-1;}int dfs(int x,int flow){ if (x==T) return flow; int k,rest=flow; for (int i=head[x];i&&rest;i=e[i].next) if (dis[e[i].to]==dis[x]+1&&e[i].f){ k=dfs(e[i].to,min(rest,e[i].f)); rest-=k; e[i].f-=k; e[i^1].f+=k; } if (rest) dis[x]=-1; return flow-rest;}int main(){ scanf("%d%d%d",&l,&w,&n); for (int i=1;i<=n;i++) scanf("%d%d",&p[i].x,&p[i].y); S=n*2+1; T=S+1; for (int i=1;i<=n;i++){ add(i,i+n,1); if (p[i].y<=100) add(S,i,1e9); if (w-p[i].y<=100) add(i+n,T,1e9); } for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) if (sqr(p[i].x-p[j].x)+sqr(p[i].y-p[j].y)<=40000&&i!=j) add(i+n,j,1e9); while (spfa()) ans+=dfs(S,1e9); printf("%d",ans);}
阅读全文
0 0
- bzoj1340: [Baltic2007]Escape逃跑问题
- 算法实战4:逃跑问题Escape
- [Baltic2007]Sound静音问题
- BZOJ1345: [Baltic2007]序列问题Sequence
- 【Baltic2007】【BZOJ1345】序列问题Sequence
- 【Baltic2007】【BZOJ1342】Sound静音问题
- bzoj1345: [Baltic2007]序列问题Sequence
- bzoj1342 [Baltic2007]Sound静音问题
- BZOJ 1345: [Baltic2007]序列问题Sequence
- 【BZOJ1342】【Baltic2007】Sound静音问题 单调队列
- 【BZOJ 1345】 [Baltic2007]序列问题Sequence
- 【bzoj 1345】 [Baltic2007]序列问题Sequence
- 【BOI2007】逃跑问题 (BSOI2344)
- 【BOI2007】逃跑问题 最小割
- 【BZOJ】【P1345】【Baltic2007】【序列问题Sequence】【ST表】
- 【BZOJ】【P1342】【Baltic2007】【Sound静音问题】【题解】【map】
- BZOJ 1342 Baltic2007 Sound静音问题 单调队列
- BZOJ 1342: [Baltic2007]Sound静音问题|单调队列
- 素数检测算法
- bzoj2342 [Shoi2011]双倍回文(manacher+暴力/set)
- Zend Studio 12.5.1(64位)破解汉化教程
- Codeforces #390 (Div. 2) B. Ilya and tic-tac-toe game ( DFS
- UVA12174Shuffle
- bzoj1340: [Baltic2007]Escape逃跑问题
- 静态顺序表的实现
- bzoj2434 阿狸的打字机NOI2011ac自动机+fail树+树状数组+dfs序详解
- 如何创建本地svn库
- IDM Internet Download Manager 下载器浏览器集成教程
- OpenCV之形态学(开运算、闭运算、形态学梯度、顶帽、黑帽)
- noi知识点
- ZOJ
- leetcode[Repeated Substring Pattern]//待整理多种解法