题目链接:

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---并查集+模拟(附测试数据)的更多相关文章

  1. 杭电OJ——1198 Farm Irrigation (并查集)

    畅通工程 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可 ...

  2. hdu 1198 Farm Irrigation(深搜dfs || 并查集)

    转载请注明出处:viewmode=contents">http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://acm ...

  3. HDU 1198 Farm Irrigation(并查集,自己构造连通条件或者dfs)

    Farm Irrigation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  4. hdu 1198 Farm Irrigation(并查集)

    题意: Benny has a spacious farm land to irrigate. The farm land is a rectangle, and is divided into a ...

  5. HDU 1198 Farm Irrigation(并查集+位运算)

    Farm Irrigation Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Tot ...

  6. HDU 1198 Farm Irrigation(状态压缩+DFS)

    题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=1198 题目: Farm Irrigation Time Limit: 2000/1000 MS (Ja ...

  7. HDU 1198 Farm Irrigation (并检查集合 和 dfs两种实现)

    Farm Irrigation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  8. hdu1198 Farm Irrigation 并查集

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1198 简单并查集 分别合并竖直方向和水平方向即可 代码: #include<iostream&g ...

  9. hdu.1198.Farm Irrigation(dfs +放大建图)

    Farm Irrigation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  10. hdu 1198 Farm Irrigation

    令人蛋疼的并查集…… 我居然做了大量的枚举,居然过了,我越来越佩服自己了 这个题有些像一个叫做“水管工”的游戏.给你一个m*n的图,每个单位可以有11种选择,然后相邻两个图只有都和对方连接,才判断他们 ...

随机推荐

  1. Error mounting / dev / sdb1 in Ubuntu

    Uncommon users of Ubuntu OS, when connecting USB with NTFS file system, can observe the error: " ...

  2. windows severs 2008r2 180天激活

    无需破解:Windows Server 2008 R2 至少免费使用 900天 1.首先安装后,有一个180天的试用期. 2.在180天试用期即将结束时,使用下面的评估序列号激活Svr 2008 R2 ...

  3. luoguP4931 情侣?给我烧了!(加强版)

    luogu 普通版题解:https://www.cnblogs.com/lcxer/p/10876856.html 在普通版里,我们考虑对于\(n\)对情侣,恰好\(k\)对是和谐的方案数是 \[ a ...

  4. AT2672 Coins

    传送门 按理说想到转化问题之后就不难了吧,可是我还是不会写 一个很容易想到的转化就是差分,将银币数和铜币数都减去金币数,这样就转化为\(x+y+z\)个钱币选\(y\)个银币和\(z\)个铜币的最大数 ...

  5. Jmeter report优化

    优化大致过程 生成并的报告模板: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet ...

  6. poj2186-Popular Cows(强连通分支)

    有N(N<=10000)头牛,每头牛都想成为most poluler的牛,给出M(M<=50000)个关系,如(1,2)代表1欢迎2,关系可以传递,但是不可以相互,即1欢迎2不代表2欢迎1 ...

  7. onbeforeunload与onunload事件

    Onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过 window.onunload来指定或者在<body>里指定.区别在于o ...

  8. 10g duplicate and 11g dupliacte db for standby

    ###################10g Creating a Physical Standby Database OASSTBY Make sure database is in archive ...

  9. C. Destroying Array 并查集,逆向思维

    用并查集维护线段,从后往前枚举没个删除的位置id[i] 那么,现在删除了这个,就是没有了的,但是上一个id[i + 1]就是还没删除的. 然后现在进行合并 int left = id[i + 1];( ...

  10. javaweb项目导入myecplise出错

    项目导入出错:移动项目的时候.classpath .project不要删 build path -> use for source floder 把某一文件夹当作源码文件夹 bulid path ...