irrigation专题

hdu 1198 Farm Irrigation(并查集)

题目:         链接:点击打开链接 题意: 思路: 代码: #include<iostream>#include<cstdio>using namespace std;char a[11][5]={"1010","1001","0110","0101","1100","0011","1011","1110","0111","1101","1111"};int fathe

hdu 1198 Farm Irrigation (并查集图形的部分)

首先根据题意上的图形,对map的各个方向赋值,油管道的方向赋值为一; 最后根据地形数组p详细记录了各个点各个方向上的信息; 最后先对行进行比较,将满足题意的进行合并,然后最一列一列的将满足题意的合并;   #include"stdio.h" #include"string.h" int pre[10000],p[600][600][4]; int map[11][4]={1,1,-1,-1

Farm Irrigation HDU - 1198

点击打开链接 没什么道道 就是麻烦 要仔细 看每个块是什么类型 又能和什么类型的块相连 预处理一下即可   #include <bits/stdc++.h>using namespace std;struct node{int dir[4];};node per[11];int mp[100][100];int f[5000];int n,m;void init();void

Farm Irrigation

这题为并查集的联通问题,主要找到能否联通Merge的条件就可以解决 #include<stdio.h>#include<cstring>#include<iostream>using namespace std;int parent[2600];struct student{int up;int left;int down;int right;}node[60][60];int

HDU 1198——Farm Irrigation

并查集   先用一个数组a来保存A-K方块上下左右是否有河道。 然后使用并查集,最后判断有多少个不同的集合。 #include<cstdio>#include<iostream>#include<cstring>using namespace std;#define N 55#define M 55int a[11][4]={ 1,0,0,1, 1,1,0,0,0,0,1,1,