输入输出样例

思路:看到题目我萌第一眼想到的肯定是求联通快对吧,但是这个联通快有点奇特,因为

这样他也算是一个联通快。解决此题其实有三种解法:1)宽搜(这个符合基本法);2)并查集;3)灌水法

但是蒟蒻写的是并查集

代码如下:

  1. var n,m,i,j,ans:longint;
  2. c:..,..]of char;
  3. pre:..]of longint;
  4. a:..]of boolean;
  5. function find(x:longint):longint;
  6. begin
  7. if pre[x]=x then exit(x);
  8. find:=find(pre[x]);
  9. pre[x]:=find;
  10. end;
  11. procedure join(x,y:longint);
  12. var fx,fy:longint;
  13. begin
  14. fx:=find(x);fy:=find(y);
  15. if fx<>fy then pre[fx]:=find(fy);
  16. end;
  17. begin
  18. readln(n,m);
  19. to n*m do pre[i]:=i;
  20. to n do
  21. begin
  22. to m do
  23. begin
  24. read(c[i,j]);
  25. )*m+j]:=true;
  26. )*m+j]:=false;
  27. end;
  28. readln;
  29. end;
  30. to n do
  31. begin
  32. to m do
  33. begin
  34. if c[i,j]='#' then
  35. begin
  36. ,j]=)*m+j);
  37. ]=)*m+j+,(i-)*m+j);
  38. ,j]=)*m+j,(i-)*m+j);
  39. ]=)*m+j+,(i-)*m+j);
  40. ,j-]=,(i-)*m+j);
  41. ,j+]=,(i-)*m+j);//其实不用12个点全部判一遍,因为有重复覆盖到的部分
  42. end;
  43. end;
  44. end;
  45. to n*m do if pre[i]=i then if a[i] then inc(ans);//统计“联通快”个数
  46. writeln(ans);
  47. end.

这是蒟蒻第一道一次AC的提,发个随笔纪念一下(^_^)

【CodeVS】1293的更多相关文章

  1. 【codevs】刷题记录→_→(推荐看!)

    注:本文是我原先在csdn内写的一篇博文,现转到这里,两篇博文尽量同时更新. //#include<iostream->shuati> //define 为什么刷  学长☞hzwer ...

  2. 【最大流】【CODEVS】1993 草地排水

    [算法]网络流-最大流(dinic) [题解]http://www.cnblogs.com/onioncyc/p/6496532.html #include<cstdio> #includ ...

  3. 【CODEVS】1034 家园

    [算法]网络流-最大流(dinic) [题解] 飞船有可承载人数限制,地球为源点,月球为汇点,人像水流一样从以飞船上限为容量的边流向汇点. 人在各站点都面临着上船与否的选择,难以用DP解决最优策略,于 ...

  4. 【费用流】【CODEVS】1227 方格取数2

    [算法]最小费用最大流(费用流) [题解] 费用流:http://www.cnblogs.com/onioncyc/p/6496532.html 本题构图: 在有限的k次行走中尽可能多的拿到数字,明显 ...

  5. 【CODEVS】1033 蚯蚓的游戏问题

    [算法]网络流-最小费用最大流(费用流) [题解]与方格取数2类似 在S后添加辅助点S_,限流k 每条边不能重复走,限流1 #include<cstdio> #include<alg ...

  6. 【CODEVS】1022 覆盖

    [算法]二分图匹配(最大流) [题解]对i+j进行奇偶染色,就可以保证相邻两格异色. 然后就是二分图了,对相邻格子连边跑最大流即可. #include<cstdio> #include&l ...

  7. 【CODEVS】1922 骑士共存问题

    [算法]二分图最大匹配(最大流) [题解]按(i+j)奇偶性染色后,发现棋子跳到的地方刚好异色. 然后就是二分图了,对于每个奇点向可以跳到的地方连边,偶点不需连(可逆). 所以题目要求转换为求二分图上 ...

  8. 【CODEVS】2800 送外卖

    [算法]最短路(floyd)+状态压缩型动态规划 [题解] 经典的TSP问题(货郎担问题):求最小权哈密顿回路(遍历全图点一次且仅一次).本题稍作改动,先说原TSP问题解法:状压DP. 状态用二进制表 ...

  9. 【codevs】3196 黄金宝藏

    [算法]区间DP+博弈论 [题解]其实它都不是博弈题…… 很自然的可以设f[i][j]表示i~j先手可取得的最大价值. 容易得到转移式:f[i][j]=max(a[i]+sum[i+1~j]-f[i+ ...

随机推荐

  1. Android在View拉丝工艺和invalidate()和其他相关方法

      转载请注明出处:http://blog.csdn.net/qinjuning 前言: 本文是我读<Android内核剖析>第13章----View工作原理总结而成的,在此膜拜下作者 . ...

  2. beanutils中类型转换

    public void doPost(HttpServletRequest request, HttpServletResponse response)            throws Servl ...

  3. slice、substring、substr的区别

    首先它们都接收两个参数,slice和substring接收的是起始位置与结束位置,而substr接收的是起始位置和所要截取的字符长度.   特殊注意: 当第二参数大于第一个参数时,slice会返回空字 ...

  4. 网页启动Windows服务

    如何在网页启动Windows服务   由于公司有许多windows服务进行业务的处理,所谓对服务的维护也是一个比较头痛的问题,因为自己也不知道服务什么时候自动停了,而且更主要的原因是服务都是由运维部门 ...

  5. c# in deep 之LINQ简介(1)

    前两天公司进了一批书,在借阅jon skeet的c# in deep收获颇大,本书特点是介绍了不同版本的c#所增加的新特性.今天先写一下书中对linq的描述. 很多初学者在使用VS2010或2013写 ...

  6. 关于SourceTree License

    SourceTree 是免费软件,但是需要到官网注册一下账号以获得免费的License 官网地址:https://id.atlassian.com/login?application=mac& ...

  7. [转]Hacking the iOS Spotlight

    原文:http://theiostream.tumblr.com/post/36905860826/hacking-the-ios-spotlight 原文:http://theiostream.tu ...

  8. session验证登陆- 页面跳转

    用session验证登陆,当用户想访问一个页面时由于没有登录,就跳转到登录页面,登录后跳转到用户请求的页面,在session跳转中传上次请求的页面.  怎么获得这个url值并跳转到该页面呢? 以此跳转 ...

  9. [google面试CTCI] 1-6.图像旋转问题

    [字符串与数组] Q:Given an image represented by an NxN matrix, where each pixel in the image is 4 bytes, wr ...

  10. sublime text 3 插件:package control

    sublime text 3安装package control import urllib.request,os,hashlib; h = 'eb2297e1a458f27d836c04bb0cbaf ...