1339 / 1163: [Baltic2008]Mafia
1163: [Baltic2008]Mafia
Time Limit: 10 Sec Memory Limit: 162 MB
Submit: 96 Solved: 60
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
5 3
2
4
8
3
10
1 5
1 2
2 4
4 5
2 3
3 4
Sample Output
HINT
Source
题解:一个呵呵呵的最小割,将每个题目中的车站拆分成两个点,然后连接上一条边权为该站点费用的边,然后别的题目中所述的边直接连双向边,注意别弄乱了就是了
- /**************************************************************
- Problem:
- User: HansBug
- Language: Pascal
- Result: Accepted
- Time: ms
- Memory: kb
- ****************************************************************/
- type
- point=^node;
- node=record
- g,w:longint;
- next,anti:point;
- end;
- var
- i,j,k,l,m,n,s,t,ans:longint;
- a:array[..] of point;
- d,dv:array[..] of longint;
- function min(x,y:longint):longint;
- begin
- if x<y then min:=x else min:=y;
- end;
- procedure add(x,y,z:longint);
- var p:point;
- begin
- new(p);p^.g:=y;p^.w:=z;p^.next:=a[x];a[x]:=p;
- new(p);p^.g:=x;p^.w:=;p^.next:=a[y];a[y]:=p;
- a[x]^.anti:=a[y];a[y]^.anti:=a[x];
- end;
- function dfs(x,flow:longint):longint;
- var p:point;k:longint;
- begin
- if x=t then exit(flow);
- dfs:=;p:=a[x];
- while p<>nil do
- begin
- if (p^.w<>) and (d[x]=(d[p^.g]+)) then
- begin
- k:=dfs(p^.g,min(flow-dfs,p^.w));
- if p^.w<>maxlongint then dec(p^.w,k);
- if p^.anti^.w<>maxlongint then inc(p^.anti^.w,k);
- inc(dfs,k);if dfs=flow then exit;
- end;
- p:=p^.next;
- end;
- if d[s]=n then exit;
- dec(dv[d[x]]);
- if dv[d[x]]= then d[s]:=n;
- inc(d[x]);inc(dv[d[x]]);
- end;
- begin
- readln(n,m);
- for i:= to n* do a[i]:=nil;
- readln(s,t);s:=s*-;t:=t*;
- for i:= to n do
- begin
- readln(j);
- add(i*-,i*,j);
- end;
- for i:= to m do
- begin
- readln(j,k);
- add(j*,k*-,maxlongint);
- add(k*,j*-,maxlongint);
- end;
- fillchar(dv,sizeof(dv),);
- fillchar(d,sizeof(d),);
- ans:=;n:=n*;
- while d[s]<n do inc(ans,dfs(s,maxlongint));
- writeln(ans);
- readln;
- end.
1339 / 1163: [Baltic2008]Mafia的更多相关文章
- 1163: [Baltic2008]Mafia
1163: [Baltic2008]Mafia Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 123 Solved: 70[Submit][Stat ...
- bzoj1339/1163:[Baltic2008]Mafia
传送门 最小割,割点,模板... 代码: #include<cstdio> #include<iostream> #include<algorithm> #incl ...
- [BZOJ1163][BZOJ1339][Baltic2008]Mafia
[BZOJ1163][BZOJ1339][Baltic2008]Mafia 试题描述 匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控. 对于每个车站进行布控都需要一定的代价,现在警方希望使用 ...
- bzoj1339[Baltic2008]Mafia*
bzoj1339[Baltic2008]Mafia 题意: 匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控.对于每个车站进行布控都需要一定的代价,现在警方希望使用最小的代价控制一些车站,使得 ...
- BZOJ1163&BZOJ1339[Baltic2008]Mafia——最小割
题目描述 匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控. 对于每个车站进行布控都需要一定的代价,现在警 方希望使用最小的代价控制一些车站,使得去掉这些车站后,匪徒无法从原定的初始点到达目标 ...
- [BZOJ1339] [Baltic2008] Mafia / 黑手党
Description 匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控. 对于每个车站进行布控都需要一定的代价, 现在警方希望使用最小的代价控制一些车站,使得去掉这些车站后,匪徒无法从原定的 ...
- 【bzoj1163/bzoj1339】[Baltic2008]Mafia 网络流最小割
题目描述 匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控. 对于每个车站进行布控都需要一定的代价,现在警方希望使用最小的代价控制一些车站,使得去掉这些车站后,匪徒无法从原定的初始点到达目标点 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- [BZOJ1163&1339]Mafia
[Baltic2008]Mafia 题目 匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控. 对于每个车站进行布控都需要一定的代价,现在警方希望使用最小的代价控制一些车站,使得去掉这些车站后, ...
随机推荐
- multipathd dead but pid file exists
构建RAC环境时出现的错误 百度半天未找到解决方案,Google了一下,终于找到可行方案 Solution:- yum update device-mapper glibc -y [root@HE2 ...
- flex blazeds地址
flex blazeds地址 BlazeDS地址:http://sourceforge.net/adobe/blazeds/wiki/Home/最新BlazeDS版本是2011年编译的4.0.1.21 ...
- Canvas createRadialGradient API
Canvas createRadialGradient API <!DOCTYPE html> <html lang="en"> <head> ...
- 微信LazyMan笔试题的深入解析和实现
一.题目介绍 以下是我copy自网上的面试题原文: 实现一个LazyMan,可以按照以下方式调用: LazyMan("Hank")输出: Hi! This is Hank! ...
- 微信小程序教程(第三篇)
小程序的架构及实现机制,信道服务及会话管理 小程序架构及实现机制 小程序并不是 H5 应用,而是更偏向于传统的 CS 架构,它是基于数据驱动的模式,一切皆组件(视图组件).所以建议在开发小程序时不要以 ...
- 谈谈getElementsByClassName()
HTML5中新增的一个方法getElementsByClassName(),但是并非所有浏览器有支持 因此我们构造一个方法兼容这个方法 <script type="text/javas ...
- sed 命令详解
sed 用于筛选和转换文本的流编辑器 描述: sed是一个流编辑器,流编辑器对一个输入流执行基本的文本转换(输入流来自文件或者管道行).虽然在某些方面类似于很多可运行脚本的编辑器,但是sed的工作方式 ...
- CentOS系统通过PXE实现批量无人值守安装
通过传统的方式安装和部署计算机时,都需要人工干预的方式完成安装.如果需要部署大量的类似功能的工作站或服务器,则需要耗费大量的时间.同时传统的安装方式,每台计算机都需要光驱设备及安装光盘等介质,会额外增 ...
- asp.net core mvc权限控制:分配权限
前面的文章介绍了如何进行权限控制,即访问控制器或者方法的时候,要求当前用户必须具备特定的权限,但是如何在程序中进行权限的分配呢?下面就介绍下如何利用Microsoft.AspNetCore.Ident ...
- android 项目更改包名的方法
本文章全文转载: http://www.2cto.com/kf/201304/206747.html 1.在项目上右键,选择android tools->rename application p ...