其实吧,bzoj2150还是比较水的,

在你知道什么是最小路径覆盖的前提下;

最小路径覆盖就是在有向无环图中,每个点只能被一条路径关联,问最少有多少条路能覆盖这个图

方法是,把对于原图每个点我们拆成左右两个点i1,i2,对于每条边i--->j,那么我们连i1,j2之间连一条边

然后就是二分图,ans=原图点数-最大匹配

这里总结一下很有用的结论

最小路径覆盖=原图点数-最大匹配

最大独立集=二分图总点数(左右两边)-最大匹配

最小顶点覆盖=最大匹配

回到这题上来,由于规定只能往下走,那么就保证了这是一个有向无环图

然后构造二分图求解即可

poj1422也是裸的最小路径覆盖,但被坑爹的读入格式WA了几次T T

poj1548比较水,不说了

 1 type node=record
 2        next,point:longint;
 3      end;
 4 var edge:array[0..1000010] of node;
 5     a:array[0..60,0..60] of longint;
 6     cx,cy,p:array[0..3000] of longint;
 7     dx,dy:array[1..4] of longint;
 8     v:array[0..3000] of boolean;
 9     t,len,ans,i,j,k,n,m,r,c,x,y:longint;
10     s:ansistring;
11
12 procedure add(x,y:longint);
13   begin
14     inc(len);
15     edge[len].point:=y;
16     edge[len].next:=p[x];
17     p[x]:=len;
18   end;
19
20 function find(x:longint):integer;
21   var i,y:longint;
22   begin
23     i:=p[x];
24     while i<>-1 do
25     begin
26       y:=edge[i].point;
27       if not v[y] then
28       begin
29         v[y]:=true;
30         if (cy[y]=-1) or (find(cy[y])=1) then
31         begin
32           cx[x]:=y;
33           cy[y]:=x;
34           exit(1);
35         end;
36       end;
37       i:=edge[i].next;
38     end;
39     exit(0);
40   end;
41
42 begin
43   readln(n,m,r,c);
44   for i:=1 to n do
45   begin
46     readln(s);
47     for j:=1 to m do
48     begin
49       if s[j]='.' then
50       begin
51         inc(t);
52         a[i,j]:=t;
53       end;
54     end;
55   end;
56   dx[1]:=r; dx[2]:=r; dx[3]:=c; dx[4]:=c;
57   dy[1]:=c; dy[2]:=-c; dy[3]:=r; dy[4]:=-r;
58   fillchar(p,sizeof(p),-1);
59   fillchar(cx,sizeof(cx),-1);
60   fillchar(cy,sizeof(cy),-1);
61   for i:=1 to n do
62     for j:=1 to m do
63       if a[i,j]<>0 then
64         for k:=1 to 4 do
65         begin
66           x:=i+dx[k];
67           y:=j+dy[k];
68           if (x<=n) and (y>0) and (y<=m) and (a[x,y]>0) then add(a[i,j],a[x,y]);
69         end;
70
71   for i:=1 to t do
72     if cx[i]=-1 then
73     begin
74       fillchar(v,sizeof(v),false);
75       ans:=ans+find(i);
76     end;
77   writeln(t-ans);
78 end.

bzoj2150

转载于:https://www.cnblogs.com/phile/p/4473241.html

bzoj2150,poj1422,poj1548相关推荐

  1. Mysql,SqlServer,Oracle主键自动增长的设置

    Mysql,SqlServer,Oracle主键自动增长的设置 参考文献 http://blog.csdn.net/andyelvis/article/details/2446865 1.把主键定义为 ...

  2. linux启动,重启,停止 jar,.sh脚本

    linux启动,重启,停止 jar,.sh脚本 #配置jar名称 APP_NAME=receiver.jar#使用说明,用来提示输入参数 usage() { echo "Usage: sh ...

  3. 堆栈,数据,文本,heap,bss,text data,stack

    堆栈,数据,文本,heap,bss,text data,stack text data bss stack heap 段 根据APUE,程序分为下面的段:.text, data (initialize ...

  4. TVM示例展示 README.md,Makefile,CMakeLists.txt

    TVM示例展示 README.md,Makefile,CMakeLists.txt TVM/README.md Open Deep Learning Compiler Stack Documentat ...

  5. TVM,Relay,Pass

    TVM,Relay,Pass Relay介绍 主要结合TVM的文档(https://tvm.apache.org/docs/dev/relay_intro.html),介绍一下NNVM的第二代Rela ...

  6. LED芯片,应用品,蓝宝石衬底,集成电路,UV

    LED芯片,应用品,蓝宝石衬底,集成电路,UV 三安主要从事全色系超高亮度LED芯片的研发,生产与销售,产品性能稳定,品质优异. 产品覆盖 三安能够提供全波长范围的LED,产品可覆盖全部可见光和不可见 ...

  7. CPU,GPU,Memory调度

    CPU,GPU,Memory调度 HDD&Memory&CPU调度机制(I/O硬件性能瓶颈) 图1. HDD&Memory&CPU调度图 CPU主要就是三部分:计算单元 ...

  8. 自动驾驶QNX,Linux,Autosar概述

    自动驾驶QNX,Linux,Autosar概述 QNX是一个分布式.嵌入式.可规模扩展的实时操作系统.遵循POSIX.1 (程序接口)和POSIX.2 (Shell和工具).部分遵循POSIX.1b( ...

  9. i.MX6UL: i.MX 6UltraLite处理器 - 低功耗,安全,Arm® Cortex®-A7内核

    i.MX6UL: i.MX 6UltraLite处理器 - 低功耗,安全,Arm® Cortex®-A7内核 概述 i. MX6UltraLite作为i.MX6系列的扩展,一系列高性能.超高效的处理器 ...

最新文章

  1. linux下查找文件及内容 grep
  2. python代码大全p-【python】10分钟教你用python一行代码搞点大新闻
  3. PHP实现简单顺序栈
  4. 分享自己的C#开发类库
  5. 65. Valid Number
  6. PHPUnit 3.4.10 在windows上配置
  7. Webstorm设置开发模板
  8. python类的属性和对象属性_Python打印对象的全部属性
  9. Python零基础实践随机爬山算法
  10. paip.提升稳定性---c3p0数据库连接池不能取到连接An attempt by a client to checkout a Connection has timed out
  11. Tomcat下快逸报表中文乱码问题怎么解决
  12. ZZULIOJ.1706: 神奇的编码
  13. 自动驾驶应用加速 模拟仿真技术是关键之一
  14. 自适应YouTube视频嵌入
  15. xxl-job集群原理
  16. C语言数据结构代码——有向图
  17. 「三代组装」Pacbio组装后如何用自身数据进行polish
  18. 1112day10:考前复习50题:断言
  19. 好用的一些功能性网站
  20. 帕金森疾病的事件相关电位与认知

热门文章

  1. 怎么解决VMware“该虚拟机似乎正在使用中”问题
  2. LINUX下解决netstat查看TIME_WAIT状态过多问题
  3. 树莓派3B的WiFi中文乱码及搜索不到附近的WiFi_解决方案:
  4. 将DEX反编译成Java源代码
  5. 如何在Python中表示一个无限数?
  6. java 钩子 64位 操作系统_Java与系统钩子
  7. 页面根路径${pageContext.request.contextPath }
  8. 宝元系统通讯软件recon_企业即时通讯工具需注意哪些问题
  9. linux :Tar 命令参数详解
  10. python http请求_python模拟http请求