BZOJ 1340: [Baltic2007]Escape逃跑问题
1340: [Baltic2007]Escape逃跑问题
Time Limit: 5 Sec Memory Limit: 162 MB
Submit: 285 Solved: 133
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
10 50
130 130
70 170
0 180
60 260
Sample Output
HINT
1 <= W <= 50,000 1 <= L <= 50,000 1 <= N <= 250
Source
网络流 最小割
暴力判断两个士兵是否相交就行
#include <bits/stdc++.h> const int siz = ;
const int inf = ; int L, W, N; int X[siz];
int Y[siz]; int S, T; int hd[siz];
int nt[siz];
int to[siz];
int fl[siz]; inline void add(int u, int v, int f)
{
static int edge = , init = ; if (init)memset(hd, -, sizeof(hd)), init = ; nt[edge] = hd[u]; to[edge] = v; fl[edge] = f; hd[u] = edge++;
nt[edge] = hd[v]; to[edge] = u; fl[edge] = ; hd[v] = edge++;
} int dep[siz]; inline bool bfs(void)
{
static int que[siz], l, r;
memset(dep, , sizeof(dep));
dep[que[l = ] = S] = r = ; while (l != r)
{
int u = que[l++], v; for (int i = hd[u]; ~i; i = nt[i])
if (fl[i] && !dep[v = to[i]])
dep[que[r++] = v] = dep[u] + ;
} return dep[T];
} int cur[siz]; int dfs(int u, int f)
{
using std::min; if (u == T || !f)
return f; int used = , flow, v; for (int i = cur[u]; ~i; i = nt[i])
if (fl[i] && dep[v = to[i]] == dep[u] + )
{
flow = dfs(v, min(fl[i], f - used)); used += flow;
fl[i] -= flow;
fl[i^] += flow; if (fl[i])
cur[u] = i; if (f == used)
return f;
} if (!used)
dep[u] = ; return used;
} inline int maxFlow(void)
{
int maxFlow = , newFlow; while (bfs())
{
memcpy(cur, hd, sizeof(cur)); while (newFlow = dfs(S, inf))
maxFlow += newFlow;
} return maxFlow;
} inline long long sqr(long long x)
{
return x * x;
} inline long long dis(int i, int j)
{
return sqr(X[i] - X[j]) + sqr(Y[i] - Y[j]);
} signed main(void)
{
scanf("%d%d%d", &L, &W, &N); for (int i = ; i <= N; ++i)
scanf("%d%d", X + i, Y + i); S = , T = * N + ; for (int i = ; i <= N; ++i)
{
add(i, i + N, );
if (Y[i] <= )add(S, i, inf);
if (Y[i] >= W - )add(i + N, T, inf);
} for (int i = ; i <= N; ++i)
for (int j = ; j <= N; ++j)
if (dis(i, j) <= && i != j)
add(i + N, j, inf); printf("%d\n", maxFlow());
}
@Author: YouSiki
BZOJ 1340: [Baltic2007]Escape逃跑问题的更多相关文章
- 【BZOJ-1340】Escape逃跑问题 最小割
1340: [Baltic2007]Escape逃跑问题 Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 264 Solved: 121[Submit] ...
- BZOJ 1342: [Baltic2007]Sound静音问题( 单调队列 )
一开始写了个RMQ然后就T了... 好吧正解是单调队列, 维护两个单调队列... ----------------------------------------------------------- ...
- BZOJ 1345: [Baltic2007]序列问题Sequence
1345: [Baltic2007]序列问题Sequence Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 1180 Solved: 633[Subm ...
- BZOJ 1342: [Baltic2007]Sound静音问题 | 单调队列维护的好题
题目: 给n个数字,一段合法区间[l,l+m-1]要求max-min<=c 输出所有合法区间的左端点,如果没有输出NONE 题解: 单调队列同时维护最大值和最小值 #include<cst ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- Objective-C中小怪兽的逻辑
学习Objective-C的面向对象也有一段时间了,为了犒劳自己的学习成果,写个小怪兽来犒劳一下自己把.在LOL中有怪兽和英雄的角色吧,接下来就先写一个小怪兽的类吧.从小怪兽的角度来讲,怪兽都有那些行 ...
- 越狱Season 1-Episode 19: The Key
Season 1, Episode 19: The Key -Kellerman: WeusedtohaveaGreatDane, Dane: 丹麦大狗 我们以前有一只大丹犬 bigandwild. ...
- 越狱Season 1- Episode 18: Bluff
Season 1, Episode 18: Bluff -Michael: Scofield Scofield Michael Scofield Michael Scofield -Patoshik: ...
- 越狱Season 1-Episode 17: J-Cat
Season 1, Episode 17: J-Cat -Pope: Hey, that's looking good. 嗨,看起来真棒 You're making some real progres ...
随机推荐
- anaconda+pycharm的安装和应用
至于anaconda的安装与pycharm的安装在此不做多说,主要说下遇到的问题. 问题描述: 安装anaconda后,pip下载的第三方库调用不到. 原因分析: anaconda自带的python3 ...
- java IO流 对文件操作的代码集合
Io流 按照分类 有两种分类 流向方向: 有输入流和输出流 按照操作类型有:字节流和字符流 按照流向方向 字节流的一些操作 //读文件 FileInputStream fis = new FileIn ...
- spring 在ssh三大框架中充当的角色
https://blog.csdn.net/yeah_nn/article/details/79992777
- 【异常检测】Isolation forest 的spark 分布式实现
1.算法简介 算法的原始论文 http://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/icdm08b.pdf .python的sklearn中已经实现 ...
- access和MySQL mssql
Access.MSSQL.MYSQL数据库之间有什么区别? Access数据库.MSSQL数据库.MYSQL数据库之间有什么区别? 不少企业和个人站长在网站制作时,会对数据库的概 ...
- IDEA2017.3.4破解方式及lombok图文配置详解
下载jetbrainsCrack-2.7-release-str.jar包 下载地址: https://files.cnblogs.com/files/xifenglou/JetBrains.zip ...
- IOS上z-index和fixed定位无效
IOS上z-index和fixed定位无效 在该元素上加: -webkit-transform:translateZ(1px); -moz-transform:translateZ(1px); -o- ...
- 微信小程序——节奏练耳 宣传页
节奏练耳是什么? 节奏练耳小程序是一款听音练习节奏的交互式小程序.节奏练耳第一大节是辨认六种音符的练习,剩余九大节的练习题中播放的音频是将时值长短不一的音符组合在一起,配合相应的节奏图片,以提高辨认节 ...
- cnblogs用户体验评价
1. 是否提供良好的体验给用户(同时提供价值)? 博客园就相当于现在生活中处处可见的微博,所有人都在上面发表自己的一些看法,当然我们比较关注的是计算机编程方面的一些博客,大多数编程人员愿意分享自己的代 ...
- Gradle入门(6):创建Web应用项目
如果要用 Java 和 Gradle 创建一个 Web 应用项目,我们首先需要创建一个 Java 项目,下面来看看该如何去做. 创建Java项目 我们可以使用Java插件创建一个Java项目,通过添加 ...