E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
SHOI2003
【BZOJ1930】[
Shoi2003
]pacman 吃豆豆【最大费用最大流】
【题目链接】被卡的不要不要的==hzwer的建图似乎是错的,按照这个过了【jiangyuze831的题解】/*ThinkThankThunk*/#include#include#includeusingnamespacestd;constintmaxn=4005,maxm=4100005,maxq=100000,inf=0x3f3f3f3f;intn,head[maxn],cnt,bg,ed,de
BraketBN
·
2020-08-17 19:40
网络流
1930: [
Shoi2003
]pacman 吃豆豆
由于自己太沙茶,WA了8次才过,还是卡着内存过得(65420kb)首先肯定拆点求最大费用最大流就对了。最朴素的方法就是对于任意两点i,j能从i走到j就从i的出点向j的入点连边,然后就会发现,不仅TLE还MLE。考虑一下发现如果i能走到j,j能走到k,那么i到k的边是完全不必要的。所以先按x递增(相同则y递增)排序,然后对于每个点,在扫描其后点时维护当前最低,小于最低才连边。然后就过了O(∩_∩)O
nlj1999
·
2015-12-15 11:00
BZOJ 1930
Shoi2003
pacman 吃豆豆 费用流
题目大意:给定一个平面上的一些点,吃豆先生从原点出发,只能向右或向上走,求两个吃豆先生最多吃到多少豆每个点拆成两个,之间连一条流量为1,费用为1的边;如果从一个点出发可以到达另一个点,就将前一个点的出点连向后一个点的入点跑费用流。但是这样显然是会TLE的如果i能到j,j能到k,那么显然无需连i->k这条边这是一个剪枝加了这个剪枝之后可能会WA因此还要考虑一个点经过多次的情况即每个点从入点向出点再连
PoPoQQQ
·
2015-01-05 19:00
费用流
bzoj
BZOJ1930
BZOJ1930 [
Shoi2003
]pacman 吃豆豆 费用流
题目大意:在二维平面上有若干个点,求出两条不相交的二维LIS,使得上面包含的点的数目最多。思路1:暴力建图注意到不相交这个条件根本没用,画图可以发现如果相交的话,我们总可以通过交换一些点使得两个序列不相交。那么问题转化为求出两个没有公共点的上升子序列,使得长度之和最大。对于这种情况我们利用最大费用流求解。设(a,b)分别表示一条有向边的流量和费用。S->S'(2,0)S'->x(1,0),x'->
wyfcyx_forever
·
2014-10-29 11:00
【BZOJ】【P1930】【
Shoi2003
】【pacman 吃豆豆】【题解】【费用流】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1930显然豆豆相不相交一个样显然暴力建边会挂那么要减少边数如果一个点可以通过一个点作中介到达后一个点,那么前后两个点不连边最后的建图是s->sscap=2cost=0ss->incap=1cost=0in->outcap=1cost=1in->outcap=1cost=0out->ttcap=
u012732945
·
2014-10-28 07:00
bzoj
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他