【CodeVS】1293


输入输出样例

思路:看到题目我萌第一眼想到的肯定是求联通快对吧,但是这个联通快有点奇特,因为
这样他也算是一个联通快
。解决此题其实有三种解法:1)宽搜(这个符合基本法);2)并查集;3)灌水法
但是蒟蒻写的是并查集
代码如下:
var n,m,i,j,ans:longint;
c:..,..]of char;
pre:..]of longint;
a:..]of boolean;
function find(x:longint):longint;
begin
if pre[x]=x then exit(x);
find:=find(pre[x]);
pre[x]:=find;
end;
procedure join(x,y:longint);
var fx,fy:longint;
begin
fx:=find(x);fy:=find(y);
if fx<>fy then pre[fx]:=find(fy);
end;
begin
readln(n,m);
to n*m do pre[i]:=i;
to n do
begin
to m do
begin
read(c[i,j]);
)*m+j]:=true;
)*m+j]:=false;
end;
readln;
end;
to n do
begin
to m do
begin
if c[i,j]='#' then
begin
,j]=)*m+j);
]=)*m+j+,(i-)*m+j);
,j]=)*m+j,(i-)*m+j);
]=)*m+j+,(i-)*m+j);
,j-]=,(i-)*m+j);
,j+]=,(i-)*m+j);//其实不用12个点全部判一遍,因为有重复覆盖到的部分
end;
end;
end;
to n*m do if pre[i]=i then if a[i] then inc(ans);//统计“联通快”个数
writeln(ans);
end.
这是蒟蒻第一道一次AC的提,发个随笔纪念一下(^_^)
【CodeVS】1293的更多相关文章
- 【codevs】刷题记录→_→(推荐看!)
注:本文是我原先在csdn内写的一篇博文,现转到这里,两篇博文尽量同时更新. //#include<iostream->shuati> //define 为什么刷 学长☞hzwer ...
- 【最大流】【CODEVS】1993 草地排水
[算法]网络流-最大流(dinic) [题解]http://www.cnblogs.com/onioncyc/p/6496532.html #include<cstdio> #includ ...
- 【CODEVS】1034 家园
[算法]网络流-最大流(dinic) [题解] 飞船有可承载人数限制,地球为源点,月球为汇点,人像水流一样从以飞船上限为容量的边流向汇点. 人在各站点都面临着上船与否的选择,难以用DP解决最优策略,于 ...
- 【费用流】【CODEVS】1227 方格取数2
[算法]最小费用最大流(费用流) [题解] 费用流:http://www.cnblogs.com/onioncyc/p/6496532.html 本题构图: 在有限的k次行走中尽可能多的拿到数字,明显 ...
- 【CODEVS】1033 蚯蚓的游戏问题
[算法]网络流-最小费用最大流(费用流) [题解]与方格取数2类似 在S后添加辅助点S_,限流k 每条边不能重复走,限流1 #include<cstdio> #include<alg ...
- 【CODEVS】1022 覆盖
[算法]二分图匹配(最大流) [题解]对i+j进行奇偶染色,就可以保证相邻两格异色. 然后就是二分图了,对相邻格子连边跑最大流即可. #include<cstdio> #include&l ...
- 【CODEVS】1922 骑士共存问题
[算法]二分图最大匹配(最大流) [题解]按(i+j)奇偶性染色后,发现棋子跳到的地方刚好异色. 然后就是二分图了,对于每个奇点向可以跳到的地方连边,偶点不需连(可逆). 所以题目要求转换为求二分图上 ...
- 【CODEVS】2800 送外卖
[算法]最短路(floyd)+状态压缩型动态规划 [题解] 经典的TSP问题(货郎担问题):求最小权哈密顿回路(遍历全图点一次且仅一次).本题稍作改动,先说原TSP问题解法:状压DP. 状态用二进制表 ...
- 【codevs】3196 黄金宝藏
[算法]区间DP+博弈论 [题解]其实它都不是博弈题…… 很自然的可以设f[i][j]表示i~j先手可取得的最大价值. 容易得到转移式:f[i][j]=max(a[i]+sum[i+1~j]-f[i+ ...
随机推荐
- vector成员函数解析
vector线性集装箱,其元素颜格排序根据线性序列,和动态数组很阶段似,像阵列,它的元素被存储在连续的存储空间,这也意味着,我们不仅能够使用迭代器(iterator)访问元素,也可以用一个指针访问偏移 ...
- 由浅入深学习.NET CLR 系列:目录
经过对Android的一阵折腾,些许熟悉了一些Java的东东,又开始转战.NET.我觉得学习最好和工作不要相离太远,才会更加随笔随意,索性整理一些比较系统的.NET的基础知识学习学习.一提起学习.NE ...
- 【转】Android 网络通信框架Volley简介(Google IO 2013)
Volley主页 https://android.googlesource.com/platform/frameworks/volley http://www.youtube.com/watch?v= ...
- Python的@符号
Python一直都属于用,没有去系统学习过,在一次代码review中见到了@符号,回来看了下,这个符号用于装饰器中,用于修饰一个函数,把被修饰的函数作为参数传递给装饰器,下面举几个例子: 1. @cl ...
- SZU:B85 Alec's Eggs
Description Eggs Alec has a lot of eggs. One day, he want to sort them in a ascending sequence by we ...
- iOS基础 - iOS程序启动原理
一.UIApplicationMain 在main.m的main函数中执行了UIApplicationMain这个方法,这是ios程序的入口点 int UIApplicationMain(int ar ...
- Redis .NET开源组件Beetle.Redis
Redis .NET开源组件Beetle.Redis Beetle.Redis是一款开源的Redis Client for .net组件,它提供非常简便的操作方式可以让开发人员轻松地访问Redis,同 ...
- twisted学习笔记4 部署Twisted 应用程序
原创博文,转载请注明出处. Twisted是一个可扩展,跨平台的网络服务器和客户端引擎. Twisted Application 框架有五个主要基础部分组成:服务,应用程序,TAC文件插件和twist ...
- Spring in action (1)
spring中注入bean的方法: 1.通过xml文件来注入bean. 2.通过java注解来注入 默认的bean生命周期是单例的.每次都会返回相同的类的实例.
- 苹果APNs’ device token特性和过期更新
APNs全名是Apple Push Notification Service.用iPhone的应该都习惯了,每次安装完一个新应用启动后,几乎都会弹出个警告框,“XXX应用”想要给您发送推送通知.这个警 ...