bzoj2150,poj1422,poj1548
其实吧,bzoj2150还是比较水的,
在你知道什么是最小路径覆盖的前提下;
最小路径覆盖就是在有向无环图中,每个点只能被一条路径关联,问最少有多少条路能覆盖这个图
方法是,把对于原图每个点我们拆成左右两个点i1,i2,对于每条边i--->j,那么我们连i1,j2之间连一条边
然后就是二分图,ans=原图点数-最大匹配
这里总结一下很有用的结论
最小路径覆盖=原图点数-最大匹配
最大独立集=二分图总点数(左右两边)-最大匹配
最小顶点覆盖=最大匹配
回到这题上来,由于规定只能往下走,那么就保证了这是一个有向无环图
然后构造二分图求解即可
poj1422也是裸的最小路径覆盖,但被坑爹的读入格式WA了几次T T
poj1548比较水,不说了
type node=record
next,point:longint;
end;
var edge:array[..] of node;
a:array[..,..] of longint;
cx,cy,p:array[..] of longint;
dx,dy:array[..] of longint;
v:array[..] of boolean;
t,len,ans,i,j,k,n,m,r,c,x,y:longint;
s:ansistring; procedure add(x,y:longint);
begin
inc(len);
edge[len].point:=y;
edge[len].next:=p[x];
p[x]:=len;
end; function find(x:longint):integer;
var i,y:longint;
begin
i:=p[x];
while i<>- do
begin
y:=edge[i].point;
if not v[y] then
begin
v[y]:=true;
if (cy[y]=-) or (find(cy[y])=) then
begin
cx[x]:=y;
cy[y]:=x;
exit();
end;
end;
i:=edge[i].next;
end;
exit();
end; begin
readln(n,m,r,c);
for i:= to n do
begin
readln(s);
for j:= to m do
begin
if s[j]='.' then
begin
inc(t);
a[i,j]:=t;
end;
end;
end;
dx[]:=r; dx[]:=r; dx[]:=c; dx[]:=c;
dy[]:=c; dy[]:=-c; dy[]:=r; dy[]:=-r;
fillchar(p,sizeof(p),-);
fillchar(cx,sizeof(cx),-);
fillchar(cy,sizeof(cy),-);
for i:= to n do
for j:= to m do
if a[i,j]<> then
for k:= to do
begin
x:=i+dx[k];
y:=j+dy[k];
if (x<=n) and (y>) and (y<=m) and (a[x,y]>) then add(a[i,j],a[x,y]);
end; for i:= to t do
if cx[i]=- then
begin
fillchar(v,sizeof(v),false);
ans:=ans+find(i);
end;
writeln(t-ans);
end.
bzoj2150
bzoj2150,poj1422,poj1548的更多相关文章
- 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])
常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列 ...
- MySQL主从环境下存储过程,函数,触发器,事件的复制情况
下面,主要是验证在MySQL主从复制环境下,存储过程,函数,触发器,事件的复制情况,这些确实会让人混淆. 首先,创建一张测试表 mysql),age int); Query OK, rows affe ...
- Oracle安装部署,版本升级,应用补丁快速参考
一.Oracle安装部署 1.1 单机环境 1.2 Oracle RAC环境 1.3 Oracle DataGuard环境 1.4 主机双机 1.5 客户端部署 二.Oracle版本升级 2.1 单机 ...
- Syscall,API,ABI
系统调用(Syscall):Linux2.6之前是使用int0x80(中断)来实现系统调用的,在2.6之后的内核是使用sysentry/sysexit(32位机器)指令来实现的系统调用,这两条指令是C ...
- 【夯实PHP基础】PHP数组,字符串,对象等基础面面观
本文地址 分享提纲 1.数组篇 2.字符创篇 3.函数篇 4.面向对象篇 5.其他篇 /*************************** 一.数组篇 Begin***************** ...
- MSSQL 事务,视图,索引,存储过程,触发器
事务 事务是一种机制.是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行. 在数据库系统上执行并发操作时事务是作为最小的控制单元来使用的.这特别适用于多用户同时操作的数据 ...
- 谁偷了我的热更新?Mono,JIT,iOS
前言 由于匹夫本人是做游戏开发工作的,所以平时也会加一些玩家的群.而一些困扰玩家的问题,同样也困扰着我们这些手机游戏开发者.这不最近匹夫看自己加的一些群,常常会有人问为啥这个游戏一更新就要重新下载,而 ...
- Atitit 知识管理的重要方法 数据来源,聚合,分类,备份,发布 搜索
Atitit 知识管理的重要方法 数据来源,聚合,分类,备份,发布 搜索 1.1. Rss 简易信息聚合(也叫聚合内容 Really Simple Syndication1 1.1. Rss 简易信息 ...
- APP测试点总结(功能,交互,死机崩溃状态分析,容易出错的检查点)
APP测试点总结(功能,交互,死机崩溃状态分析,容易出错的检查点) 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近涉足APP端测试,常见检查点总结如下: 一.业务方面: 1. 注册( ...
随机推荐
- CentOS系统中手动调整系统时间的方法
我们一般使用“date -s”命令来修改系统时间.比如将系统时间设定成1996年6月10日的命令如下. #date -s 06/10/96 将系统时间设定成下午1点12分0秒的命令如下. #date ...
- HttpUnit学习笔记
<!-- htmlUnit --> <dependency> <groupId>net.sourceforge.htmlunit</groupId> & ...
- c语言指针用法
一.指针 int t 定义整型变量 int *p p为指向整型数据的指针变量 int a[n] 定义整型数组a,它有n个元素 int *p[n] 定义指针数组p,它由n个指向整形数据的指针元素组成 i ...
- fedora安装postgresql
1. 安装:postgresql-server pgadmin程序 sudo yum install postgresql-server.x86_64 sudo yum install pgadmin ...
- (转)PHP中的 抽象类(abstract class)和 接口(interface)
转自:http://blog.csdn.net/sunlylorn/article/details/6124319 一. 抽象类abstract class 1 .抽象类是指在 class 前加了 a ...
- easy ui datagrid 动态绑定数据并绑定链接,进行操作
①.绑定datagrid,formatter { field: 'ShopId', title: '操作', width: 200, align: 'left', formatter: showSho ...
- 由于本公司项目需要,现急需拥有微软MCSE证书的人才,一经录用,待遇从优!
志鸿科技于1988年在香港创办,从事资讯科技服务,为本地及跨国金融企业提供各种合适的企业应用软件及方案,并于2000年6月30日在香港联合交易所创业板成功上市 (股票代号8048),香港长江实业.新加 ...
- Qt的gzip模块实现
一直没找到Qt中方便的gzip模块,于是自己动手,调用zlib模块实现了一份. 目标: 1.gzip的压缩与解压 2.内存中操作 3.方便的Qt接口 实现分析: gzip 压缩算法为 defla ...
- iOS9下修改回HTTP模式进行网络请求
升级为iOS9后,默认请求类型为https,如何使用http进行请求会报错 The resource could not be loaded because the App Transport Sec ...
- bzoj 1242: Zju1015 Fishing Net 弦图判定
1242: Zju1015 Fishing Net弦图判定 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 214 Solved: 81[Submit ...