hdu1198 普通的并查集
今天开始(第三轮)并查集,,之前学的忘了一些
本题很简单直接上代码
#include<iostream>
#include<cstring>
#include<cstdio>
#define MAXN 55
using namespace std;
int F[MAXN*MAXN];
int find(int x){
if(F[x]==-) return x;
return F[x]=find(F[x]);
}
void bing(int a,int b){
int t1=find(a);
int t2=find(b);
if(t1!=t2) F[t1]=t2;
}
char mp[MAXN][MAXN];
int main(){
int n,m;
while(scanf("%d%d",&n,&m)== && n>){
for(int i=;i<n;i++)
for(int j=;j<m;j++)
cin>>mp[i][j];
for(int i=;i<n*m;i++)
F[i]=-;
for(int i=;i<n;i++)
for(int j=;j<m;j++){//上下联通或者左右联通
if(i> && (mp[i][j]=='A'||mp[i][j]=='B'||mp[i][j]=='E'||mp[i][j]=='G'||mp[i][j]=='H'||mp[i][j]=='J'||mp[i][j]=='K'))
if(mp[i-][j]=='C'||mp[i-][j]=='D'||mp[i-][j]=='E'||mp[i-][j]=='H'||mp[i-][j]=='I'||mp[i-][j]=='J'||mp[i-][j]=='K')
bing(i*m+j,(i-)*m+j);
if(j> && (mp[i][j]=='A'||mp[i][j]=='C'||mp[i][j]=='F'||mp[i][j]=='G'||mp[i][j]=='H'||mp[i][j]=='I'||mp[i][j]=='K'))
if(mp[i][j-]=='B'||mp[i][j-]=='D'||mp[i][j-]=='F'||mp[i][j-]=='G'||mp[i][j-]=='I'||mp[i][j-]=='J'||mp[i][j-]=='K')
bing(i*m+j,i*m+j-);
}
int ans=;
for(int i=;i<n*m;i++)
if(F[i]==-)
ans++;
printf("%d\n",ans);
}
return ;
}
hdu1198 普通的并查集的更多相关文章
- HDU1198水管并查集Farm Irrigation
Benny has a spacious farm land to irrigate. The farm land is a rectangle, and is divided into a lot ...
- hdu-1198 Farm Irrigation---并查集+模拟(附测试数据)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1198 题目大意: 有如上图11种土地块,块中的绿色线条为土地块中修好的水渠,现在一片土地由上述的各种 ...
- zoj3261 并查集离线处理
Connections in Galaxy War Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%lld & ...
- 判断线段相交(hdu1558 Segment set 线段相交+并查集)
先说一下题目大意:给定一些线段,这些线段顺序编号,这时候如果两条线段相交,则把他们加入到一个集合中,问给定一个线段序号,求在此集合中有多少条线段. 这个题的难度在于怎么判断线段相交,判断玩相交之后就是 ...
- CDOJ1927 爱吃瓜的伊卡洛斯(2) 【并查集】启发式合并+set
伊卡洛斯很爱吃西瓜.一次,他来到一个西瓜摊旁,发现水果摊有N个西瓜,西瓜有红色.黄色.绿色.蓝色……等等数不清的颜色. 伊卡洛斯很想知道知道一些信息,便于老板交谈了起来. 当老板的话的第一个字符为”A ...
- POJ 1988 Cube Stacking 【带权并查集】
<题目链接> 题目大意: 有几个stack,初始里面有一个cube.支持两种操作: 1.move x y: 将x所在的stack移动到y所在stack的顶部. 2.count x:数在x所 ...
- [BZOJ3712]Fiolki 重构树(并查集)
3712: [PA2014]Fiolki Time Limit: 30 Sec Memory Limit: 128 MB Description 化学家吉丽想要配置一种神奇的药水来拯救世界.吉丽有n ...
- [NOI2018]归程(可持久化并查集,Kruskal重构树)
解法一: 1.首先想到离线做法:将边和询问从大到小排序,并查集维护连通块以及每个连通块中所有点到1号点的最短距离.$O(n\log n)$ 配合暴力等可以拿到75分. 2.很容易想到在线做法,使用可持 ...
- 【并查集】BZOJ4668-冷战
[题目大意] 给出N个军工厂和M 个操作,操作分为两类: • 0 u v,这次操作苏联会修建一条连接 u 号军工厂及 v 号军工厂的铁路,注意铁路都是双向的; • 1 u v, Reddington ...
随机推荐
- linux udp 函数说明
int recvfrom(int sockfd,void *buf, int len, unsigned int flags, struct sockaddr *from, int *fromlen) ...
- 【blog】SpringBoot聚合项目打包问题
在需要打包的模块的pom中,必须加上如下配置 <build> <plugins> <plugin> <groupId>org.springframewo ...
- var/let/const区别何在??(转载)
原文地址:http://www.cnblogs.com/liuhe688/p/5845561.html let和const有很多相似之处,先说一说let吧. 1. let添加了块级作用域 我们知道,J ...
- Flask中Mysql数据库的常见操作
from flask import Flask,render_template #导入第三方链接库sql点金术 from flask_sqlalchemy import SQLAlchemy #建立对 ...
- SFTP远程连接服务器上传下载文件-vs2013项目实例
本项目仅测试远程连接服务器,支持上传,下载文件,更多功能开发请看API自行开发. 环境:win7系统,vs2013 vs2013项目实例下载地址:CSDN下载 如果没有CSDN积分,百度网盘下载(密码 ...
- python基础-----字符编码
1.ASCII ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现 ...
- Windows PowerShell 入門(1)-基本操作編
Microsoftが提供している新しいシェル.Windows Power Shellの基本操作方法を学びます.インストール.起動終了方法.コマンドレット.命名規則.エイリアス.操作方法の調べ方について ...
- python 创建类的实例对象
# -*- coding: UTF-8 -*- class Employee: def __init__(self, name, salary): self.name = name self.sala ...
- python操作三大主流数据库(3)python操作mysql③python操作mysql的orm工具sqlaichemy安装配置和使用
python操作mysql③python操作mysql的orm工具sqlaichemy安装配置和使用 手册地址: http://docs.sqlalchemy.org/en/rel_1_1/orm/i ...
- CodeVs 1009
题意: 给出一个整数 n(n<10^30) 和 k 个变换规则(k<=15). 规则: 一位数可变换成另一个一位数: 规则的右部不能为零. 例如:n=234.有规则(k=2): 2-> ...