hdu-1198 Farm Irrigation---并查集+模拟(附测试数据)
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1198
题目大意:
有如上图11种土地块,块中的绿色线条为土地块中修好的水渠,现在一片土地由上述的各种土地块组成,需要浇水,问需要打多少口井。
例如下面这个土地块
ADC
FJK
IHE
then the water pipes are distributed like

解题思路:
首先模拟A-K的四个不同的方向,用了一个数组表示从A-K的四个方向是否有水管
然后枚举每个点的四个方向上可到达的地方,如果连通就合并并查集,最后根节点的数目就是连通块的数目(DFS也可以做,判断连通块即可)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = + ;
int p[maxn];
char Map[][];
int dir[][] = {,-,-,,,,,};//分别是左(0),上(1),右(2),下(3)
int G[][]={
,,,,
,,,,
,,,,
,,,,
,,,,
,,,,
,,,,
,,,,
,,,,
,,,,
,,,,
};
void init()
{
for(int i = ; i < maxn; i++)p[i] = i;
}
int Find(int x)
{
return x == p[x] ? x : p[x] = Find(p[x]);
}
void Union(int x, int y)
{
x = Find(x);
y = Find(y);
if(x != y)
{
p[x] = y;
}
}
int main()
{
int n, m;
freopen("out.txt", "w", stdout);
while(cin >> n >> m && ( n + m > ))
{
init();
for(int i = ; i < n; i++)
{
cin >> Map[i];
}
for(int i = ; i < n; i++)
{
for(int j = ; j < m; j++)
{
int c = Map[i][j] - 'A';
for(int k = ; k < ; k++)//枚举四个方向
{
if(!G[c][k])continue;//判断该方向是否存在水管
int x = i + dir[k][];
int y = j + dir[k][];
if(x < || x >= n || y < || y >= m)continue;
int d = Map[x][y] - 'A';
if(!G[d][(k + ) % ])continue;//这里是判断(x,y)处是否有和k方向相对的方向的水管
Union(i * m + j, x * m + y);//这里是编号i*m+j,一开始写错成i*n+j
}
}
}
int flag = ;
for(int i = ; i < n * m; i++)
{
if(p[i] == i)flag++;//根节点的数目也就是连通块的数目
}
cout<<flag<<endl;
}
return ;
}
测试数据:
JBHFFKBAHHFIGHDHJ
CHHIKGHIFGHCBJKKC
EJHFEHFGHAFAFEFBD
KGAAGHIHKDFCKJKDK
BBGIFFCEGGFGFABEF
GFHEAIEEADDFIEHIC
AIHHEBFCHJAKDIEBG
CJCDGFJFHEGBKHJKH
AHCAAKHKBBKJJJGGB
HJJHFIBDAKEHEFHGD
CJJICAAJJEJIHJDEK
FKKIKJBKGKKJEEFIC
IIGJJIDFHKFDCKJDK
KBKFHKHDCJIDJBFDF
KBHBFJEIFFKFGCAIG
CKJEBHICKEGABEIHC
EJECEHIDDKJAIDEAG
KGIJAAJDHABDEIGCF
FIFJECCEKDAAKCACG
HIAFBCCDFIIKCAJBB
AAKGGBBDHAHJIIIEB
FCBIFKACGFEHIECII
IFBEKFGKFGADIHICH
HIJHFFEIHDGKEAKIE
GHCHDKBIECFJEFKHA
KHCHCDAGJDJEAKJJD
DKIKAJCCACJBCEDKD
IGHKIGDHBBFGJGKJK
DFGDIAJJHIIGCIFCC
AIGJJKKJJDJEEJFAE
CIEFBGGCBDFAFFEBK
EEAIDJEEEBDGKCFBG
DFJFACCJIGJHBDAGK
CEJFDBHCGDGHADAKB
IAJBKKHDEEAIJICBA
CBKFKEBJFJGJBDECH
EIFHJCBCBJKKIDDJA
GIABAIIDHEBIHGIDF
FFHFCFJAIFFEIJEJG
KAFFDFEIECBEFKCEK
ICKGEAFCJFIEHBHCG GKDKJKAGKAICDIJBGACJ
AHCBFGDCEDKGEAFKIBAA
JHCBAJFFEIFFFCKEHJJB
IEHDIDJCHGIBKGFDJGJC
IAGEBDGCJBKAIHGCBAHE
EGHFJIKEHCEFFFGJBBEF
DKDFABABFFADDKJEJJGB
CEIKJHCDKGIAFACFJDKG
JAGAAIIDCKKFCCJBCCAF AFEGEAGEKAHBCJDII
KAGCGJBEDJGIADCGA
CFGECKBGJHIBIBGKD
ICAFDEBHDBDFEDGGK
HDIJCJFCHJHFEGHIE
DBKJFFHBGFGGAEHED
JGGECHJGCJHAGHGDK
EKHBEHDGADFKJKECD
DFKFIIFJFKJKDBDHI
HAFKCCDFDIKCJBBGA
GFHFFFEKHCKABAJEE
HKECDKCACJKACHGAK
DHJEKABBKGIGFCJAC
JIFHJJBGDAFFGAJII
CCHCADJFHECGCBIDE
KKEKJBABDABJDBACH
CCEKGGIFFCFJEAKJB
ADIKJAFEBKCJIHFFE
KKGCBJCJDIDBGFDCF
JFBFAAJFHBABCDHAF
AIHFBJDIFGKIAGIIG
GABJIFFFKEFIABBGH
BFKEAEEHJJJEFBJFA
FJHIHDCDHIJEBHJIF IECKGJFBJFBDFBBECKEKGGGEKAA
FCHKJFDEAHGFIHHGIJJGCBEEEHG
GIEADGFJBIDIEKBDIGAJAFFGFEA
GCDIBKEJGFIJHKHABAJAHBDDBIK
FBCFCEGEDIBJIJDIKAGEBCHBCIH
KAEIKCBCEGGGHBIICFBAEIJFDEC
FDGEFKIHHGEHIDDKDBEEFCBFGKI
HDFAJBDDGHFFAHBJAHKAJCEECBF
BDDGFCFKCCIACKGEDBFJBDFDDFA
ABECCDFDAKDACBBBJBEGEABFIIK
BHHKHAGDKGDFDKGEEFEFICEGBHE
HFFKFCEFCDDFADAAAFFBCJIKKJJ
IEJGAHEBKIKBIFHBFBECJEHJHEC
JDHHHDECGCIJDFCDFGHCDJECCKG
DFEEGCJKHHCCCFEKKEIEEJIAKEA
BDIGGFKCHDKJAHCCIGBFIKAAIEC
KBECAFKFJBICDIEKEBIAGDCKFAH
FCJJEHCJCKFHIHFEFKCEJGDDIEH
BACDHJDAAIDABGFDKGEEBKKEKKJ
JHFHCGCBDBFIIFFAHFAFJGGAIFB
DHEDBHBFCFGEKGGDEFJFAHKDBBD
EGDDJIFEHIBDAIBIEHHFKDEIDAB
BGCCKBFBCBKKIFCAIJIECHICHEB
KCFKGABEKEFJFGBKGEAEFCJFIGH
BHFCEEJKBKGDBBJEEHKBFHDBGFF
CFHEDFEDJFKJECIAKBIEJAKHABD
DFEAFCEFEBHBEAKIDFDKEJAICCD
EJGDIHDHIBBEDFHKJEIFCCDHACC
GJGAIDBJDCGKKKHBAIDAAEACEDA
JCHFFAHCKGFFBCIFKGCAJAJKBBH
GHACAHIDBBIBCAAEHJBHGJGGIHI
KECKGDJGAIDIIDBJJFDKJBIHIFA
EGJKFCJAHHIIBJHIADJBAHHCDAH
AGDKCHCCECHHCAKCACHFJHIFJEA GJAGCCED
DAKIBIAH
FAEFHFKA
KCCEDIIJ
ECAIDGJE
JJBAJDFI
HFIBJEJG
KEIGFDIC
CBGFFCKK
ICAGAFGH
HCEKFBBE
DFDDACDC
BEADDBKF
CAKBCEID
IHKJFIHD
KBIHCCHK
BKBDBCGG
EHFKJKJC
IHEAKAKH
DDHKKFBD
BHGKBCEI
EIJEICIH
HFHGGKJF
KJBJCHKC
ADBEGCDH
KIADDADJ
KJBEEBII
JFHKGBHK
CHJGKJJB
GEDECEED
BCJDIGBK
DIGDHFIE
ADIEFJGH
BAKACBDH
HBDBEJGD
BJICHIAH
ADIJEKID
HBEAHCBA
HIHCAKEK
CJHKCGBC
BKEEEKCJ AGEEBDBKHKECEFBBCDIBHDDD
IGFGGKFEFHBFHCAHIBJEEDBG
BAJHKKEFEDKCIJIBECDBDBKH
JHHDCHJDHDIGHJKFHEHIGHKA
IEHCGKGJFFBEJDCHGEDIBDFH
CDHHBAGABFBDAFCJIBJDDKCC
CIJIFHFGHCCEECBGHEBCGDCI
FBCFIIJFHBJFKGJHAKBHGJIK
DGEFKHGJJCEFFKHKGGBCKIIH
IFGJCDGCDHIHBEDCJECHJBBJ KKBFAGDHJEEGHFIDKFBBBB
BKIIBJIKJFJHJJDBDBJIHI
HCBGEDAEHHFCFJJAIDEKIG
JEDFBDGDHKDBIHEJCCFAKJ
CFJAAFIEKGKHCCAIHEBKBH
CBCEIEHBGIAKHAFHEAAHKK
ECDHIEHCBGAFIECFHCEBFG
BGBBFJJIJKKDCCKGBJJABH
AGBHCKJBDHBIBBHHIGGEGC
HJKDFKAKKHGJKKEHJCIGIB
DAFAEEFGDGKBFHJKHEIBBK
FBGBEEDDAEHHIIIHHFHBKJ
IJCEDACCJAFEGEEFHBKIEH
ADKEFBAFDDDCACIAIJCEIB
HBKGDDBBFIGHKEDGHECGJI
FDBACAADDKADFCFIHAIDKH
FBIFJBDCJGJAIBBKFBDFJH
KAEKBAJBGBAHDEFHBBHKJI
HJGJBJHBKBJHAFBACEBJDF FBDBDHKDJBEGJIJHKDJFAHCKCBEDDDICECG
DKKAGKFHKIJCAHBDFDFBDKDEIEHFDIEABCG
GGHKFIFFKGEAKEBKHDFHIADCHGABEDAHJIE
KDHJFKFEKHIAJKJIFJKBGFECGJFHCEIECBB
BAGGKCKGBBKIECEIBCCAGEFIHKICKDHFKCG
FJICKFJGDAAAGCGJEIIHFCIHDJJCBCHIFAH
CEKGCHKFJAECKCIAGAEGGAKCHBBJCIKBCDD
DBIGHDKCFJIKEIBKAKAKCEGDCHJEBCHAJIA
HKIDEIDDKCGHJAAJDBFEIJFDFEAEIIFHFEB
DAFIGJGAKECEGFGGCIGGEFCFIFAAKGDJDGA
ABIJEBEEJAHHKCKDFJFCFDGBADIJJBKGKCI
JIKIBJIHBDFDHEFCFFGHJCDDBIEDGDKGBIA
KDFBGBBHCFJEFHCGJIFBHCADKCDJIDJFGCE
ABAGDCHEAJJEDFEIFICCDKFJGKJGGIGJDJB
BEGHHIHGCEDEBBJKHHEJEKDFFHJKIEAIAAE
DGFDICAEEICGJHCJEAACFHFGKFEBBAGEAHA
IKIDCIJJIEIKBCCFFFHJCJBDADHHJHCGJAJ
AFKHJKKKAFEFFAHJKKCCGJGIKKHKIGGADCF
JGCABJGJEAGHIBHGBGDCAFGGBJFDDAAHJCA
JHBCKGIHIAJFBFEBKFGGKAAKHEDGABHEKGF
HEIEIDGJJDAIHDAGGCKCEDFEKIGHCGFBFBK
JAGKDHFDBCJKCDKBHAIHBKDJDBKDCHDKDEK
DBJAFIABDDKECJHGEAKJAJKCKDFIJAAEGKB
ABGBHGKHAJGBAGFEIJBIKJBHCJGGEADCIFB
CIJFGAGIDKADJBHDBJJGKGBKGAHBDHIHBAK
EIBCHHEAEJCFKBGFJJIAKHGAEAGBGEGCGGC
HDGKDBKBHJFIJCJFKKKIBGBIIFDBFJAIKIB
IDHGAFGDKICBEECHBKKKGDIBHDGAKBEFFCH
EBGHAJFJAEAHIEHFJHBIKJKJDJDHGAHBKCC
KDIJAAAFKAKDJJEHFIGKIHJHFCKHKGGEGDF
GKEKHFDEEFCHKFBEGIFKGFICDFDBGIDBGBE
JEDKJKHFGHDIBJBKDHDICJCFIHKDFFCHBGA
DDHKGKFKBEBACKCJHADJFHHKBHJBFHFFHGA IHBGKHAEJKCDJDDEEHGHCCABIBIKG
KGJIBGACAJCCGKJHBJGBFBBDEBDKI
ICAHBGBBEFKFEEKACBIFIFGHICHCA
DHKCBJGFEFJHAFKKEKKBGJIGCGDEB
AFFDEKFBKBDIGGKAGIHIBGGKDABBK
JFIACGCFDIJHHGIDJKCFBEEEKAEIH
GIDICCGFFDFHIFBBDJECFHKGIHGCE
CEBABFIJDCIFHFKBAIJJGGCFKBEKC
FHIEKJKICFJEIKEGKIBGEAJADIHIF
EBKBHIIFEBBAGIBHIAJKBFJDDCFEG
CADAICKIJBHHEFIKIJHDEBBAEFGJI
JGEBHCDGIJDIKFCJBIHFHCFKBCGJK
DFJKCFABBIFFECHHGCKIHHKFJHBDJ
ACGCHJDKJGJFIGKFBIGKDBDBCKCBK
GKJHCIJGFHDHJAGACHFIFIAJBFGFK
FGJEAFIGBHGFBJBIJFJAHDDGCHIBK
FIFIEGHJIKFHJACAJKKCEFIGDHJGE
FBHDFKGDJJIKHKDCIJDIBFJHCFJAK
GGBDICEDIAEBFJIIIDHBKKBHHFKEB
JACKFBIHDCIGDBEGCDJFCKBDECACF
KHFIJBHKCCFCKECAJBKHHJACKEIGD
KFEAFBEIJEJHGGDAEIDJHAAHJEDFK
IGJEIAIJJKDKDCDDADJEGDCGCFDGE
GCIFJKCKHICIJKADADEGGFDCJFCDI
CEAHIBIDAEIACICKKHBJFGJGCECJE
HBKGFGCABDABCEKJCICFJDDJBJACI
JHGDJAKCHHEADHEJAJHABDCDJHBJI
EHJKCIEKACKJDJCAABGEAFJDKAAGC
DDKKJHDDDGJIADDDGEKEEJAJDEGDD KAFKGFKCFABFGCHBGEAHBCBBDHKBBDHIJEJIIACHDCBICDAH
AHIEDHBIEGIIKBAEHJJFJDBGBIKKHBAFDADCAIEEJFGCAKEK
KCDDJCDEBGHGDCFFKIIEBEJHDDAHCIDGADGHAAIFDHACJCFH
DFJHDJCEAGGEAICHEHGDKFCIGKDKEFCFFFIJKHGGECGIKKKA
AJACFFJJFCDGDIGAGCHJGKAHGEFIECACKIBGAAIBHDHIEGAF
GJIBDFIBHAGAFIDGKFGHCJAJICDJIBJEAJDAEBKGCFIJDEGC
HBABAJCHGFKGIBGBIEJDEHJAKFFHFBBHHHAIJIEDGKKBDKIJ
KIKJDKBIGCJAAIJHDAGFBEEKEFKGDHJDABCIGGBKDEFJDCKB
FDFJADGHAFFEFKIDKJBGIEHDCDGKJBICHCIAKDGBAKGCFKDI
IHJHAKDHGEJHHGGFEIHIFBEGHAJKGAEJDCAKHJKABJKGBBKB
GHBAHCIFFJGFBCACABIDFKGHHDJDKGEEIAIKKEGFHGFEBBCD
HIBADGAAHJAIAGGKCDHIBAAEKKCAHGEDDKEHHFFJGIJAHICE
CFGCAIBCDDECDJHKCJGJDKCBHDAHIKDJKAJJDADCFEKJKAFA
GCDEFHEJAIAJDGFDDADJGEIAJCKBICDGABKEDAFFGBIIHDBE
AIFDACKBJHBEEGIJDFBCJEKFBHICGGBFJCHIBJCIJIJCHAEF
KBEFKDCIEEDEBKIIBGDHGJFHGKCHJGCJFIGIDACBIGCJHKEK
CIICHEEIBGHHFCICKGECHJFBFKHBAKEGBCKCHKHKCKFDHJDG
GIKABBAIKJJDEECKBEECEHBHECDEGDICCGAGCCHCJAADBIFK
答案:
hdu-1198 Farm Irrigation---并查集+模拟(附测试数据)的更多相关文章
- 杭电OJ——1198 Farm Irrigation (并查集)
畅通工程 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可 ...
- hdu 1198 Farm Irrigation(深搜dfs || 并查集)
转载请注明出处:viewmode=contents">http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://acm ...
- HDU 1198 Farm Irrigation(并查集,自己构造连通条件或者dfs)
Farm Irrigation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- hdu 1198 Farm Irrigation(并查集)
题意: Benny has a spacious farm land to irrigate. The farm land is a rectangle, and is divided into a ...
- HDU 1198 Farm Irrigation(并查集+位运算)
Farm Irrigation Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Tot ...
- HDU 1198 Farm Irrigation(状态压缩+DFS)
题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=1198 题目: Farm Irrigation Time Limit: 2000/1000 MS (Ja ...
- HDU 1198 Farm Irrigation (并检查集合 和 dfs两种实现)
Farm Irrigation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- hdu1198 Farm Irrigation 并查集
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1198 简单并查集 分别合并竖直方向和水平方向即可 代码: #include<iostream&g ...
- hdu.1198.Farm Irrigation(dfs +放大建图)
Farm Irrigation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- hdu 1198 Farm Irrigation
令人蛋疼的并查集…… 我居然做了大量的枚举,居然过了,我越来越佩服自己了 这个题有些像一个叫做“水管工”的游戏.给你一个m*n的图,每个单位可以有11种选择,然后相邻两个图只有都和对方连接,才判断他们 ...
随机推荐
- matlab求定积分和不定积分
matlab求定积分与不定积分 创建于2018-03-21 22:42 求定积分与不定积分是一件比较繁琐的事,但是我们可以借助matlab,下面与大家分享解决方法 材料/工具 matlab 求不定积分 ...
- Mybatis学习笔记之一——牛刀小试
1.Mybaits核心对象SqlSession的作用: (1)向SQL语句传入参数: (2)执行SQl语句: (3)获取执行SQL语句的结果: (4)事务的控制: 2.核心配置文件(Configrat ...
- C#多进程并行
为了并行执行多个任务,可以启动多个进程(并行数). 下面提供两种方法,总任务数10,最大并行数4. 一.方法1 using System; using System.Collections.Gener ...
- 使用mount命令挂载CDROM
Linux显示所有的目录都在一个目录树下,而于他们位于哪一个驱动器/硬件无关.在Linux下的磁盘内容作为子目录形式出现的.可移动介质的内容不会自动出现在这些自目录的,我们必须通过挂载驱动器来实现. ...
- iOS sqlite
iOS sqlite数据库操作.步骤是: 先加入sqlite开发库libsqlite3.dylib, 新建或打开数据库, 创建数据表, 插入数据, 查询数据并打印 1.新建项目sqliteDemo,添 ...
- PAT天梯赛L2-007 家庭房产
题目链接:点击打开链接 给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 输入格式: 输入第一行给出一个正整数N(<=1000),随后N行,每行按下列 ...
- IPv6邻居发现协议
IPv6邻居发现协议 邻居发现协议NDP 邻居发现协议NDP(Neighbor Discovery Protocol)是IPv6协议体系中一个重要的基础协议.邻居发现协议替代了IPv4的ARP(Add ...
- jmeter小问题解决方案合集
问题1.在http请求,post的body中输入中文,显示乱码,怎么解决? 在jmeter的bin目录下,找到这个文件jmeter.properties,把jsyntaxtextarea.font.f ...
- CSS(二)关于position
position有五种取值 前排说一个问题,2017-10-8日更新: transform会影响定位,导致fixed降级为absolute.无论是transform:translate(),scale ...
- Murano PL
To develop applications, murano project refers to Murano Programming Language (MuranoPL). It is repr ...