2016年7月20日 星期三

DFS應用-1

DFS應用-1 (A)有幾處水窪?上下左右算連通 (B)最大一處有多大{1個數數}?  (C,D)改成類似踩地雷(八方)算連通

0
1
2
3
4
5
6


0
1
2
3
4
5
6


0
1
2
3
4
5
6
7




0




1
1
1

0
1



1
1
1

0
1
1




1





1

1
1

1

1

1

1
1

1

1


0
1
2
3
4


0
1
2
3
4
2


1

1

1

2


1


1


0




1

0

1

1

3
1

1





3
1
1






1

1
1

1

1


1


4
1

1


1
1

4


1
1

1
1

2

1


1

2

1

1

5






1

5
1





1

3
1
1
1

1







6

1
1
1
1



6

1
1
1
1



4
1
1


1






































讀入資料:空白處以0代替
Vb版→
   in1.txt 1列為2有兩組資料
in1.txt 1列為2有兩組資料
輸入→

C++版:
右列5組合成一個輸入檔
1列為5
7 7
0000111
0110101
0010101
1010000
1010011
0000001
0111100
7 7
1000111
0110101
0010010
1100000
0011011
1000001
0111100
1 8
110000010

5 5
00001
01101
01001
11101
11001

3 5
01001
00110
01001

(A)輸出
5
9
2
2
5
(B)輸出
7
5
2
8
2
(C)輸出
5
4
2
2
1
(D)輸出
7
8
2
5
6


四種程式,輸入資料一樣,不同的輸出,自己寫程式看看 下圖為(A)(B)的水窪處,紅色為最大窪

0
1
2
3
4
5
6


0
1
2
3
4
5
6


0
1
2
3
4
5
6
7




0




1
1
1

0
1



1
1
1

0
1
1




1





1

1
1

1

1

1

1
1

1

1


0
1
2
3
4


0
1
2
3
4
2


1

1

1

2


1


1


0




1

0

1


1
3
1

1





3
1
1






1

1
1

1

1


1
1

4
1

1


1
1

4


1
1

1
1

2

1


1

2

1


1
5






1

5
1





1

3
1
1
1

1







6

1
1
1
1



6

1
1
1
1



4
1
1


1






































下圖為(C)(D)的水窪處,紅色為最大窪

0
1
2
3
4
5
6


0
1
2
3
4
5
6


0
1
2
3
4
5
6
7




0




1
1
1

0
1



1
1
1

0
1
1




1





1

1
1

1

1

1

1
1

1

1


0
1
2
3
4


0
1
2
3
4
2


1

1

1

2


1


1


0




1

0

1


1
3
1

1





3
1
1






1

1
1

1

1


1
1

4
1

1


1
1

4


1
1

1
1

2

1


1

2

1


1
5






1

5
1





1

3
1
1
1

1







6

1
1
1
1



6

1
1
1
1



4
1
1


1








































Related Posts:

  • 找零使用最少硬幣(CPP版參考解)輸入第一列 t 代表有 t 組資料,每組2列:第1列  n 種 ,  m元,第2列 n 種的面額範例輸入:35 501 3 5 7 135 501 5 6 7 158 1251 2 3 10 11 12 20 21範例輸… Read More
  • 萬球同心移位(C++參考)// 測試資料改為第1行為 t 組,0<t<9,接著每組 第1列n  m ,接著 m列 /*  有n個球編號0~n-1{ 3<n<5*10^5},先將n個球依順時鐘圍成一圈 m個指令F A B 或R A B {2<m<10^3} F A … Read More
  • 找零使用最少硬幣數 設有5種硬幣:1, 5, 6, 7, 15:找零50元使用最少數量的硬幣 先設定1~50中只需要1個及2個硬幣的數額;1個:1, 5, 6, 7, 15 2個:2{1+1},8{1+7},16{1+15},10{5+5},11{5+6}… Read More
  • 北二區101-2小三數學(C++版) 參考程式碼: #include <iostream> using namespace std; typedef long long LL; const LL INF = 1e18; int n,m , cnt; string s; LL a,b,c; LL cal(LL x… Read More
  • 北二區101-4王者之路(C++版) 參考程式碼 : #include <iostream> #include <cstring> #include <map> using namespace std; const int MaxN = 20; //最多 20 個 map<strin… Read More

0 意見:

張貼留言