HDU 5319 Painter (模擬 腦洞題)
Painter
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 133 Accepted Submission(s): 67
Total Submission(s): 133 Accepted Submission(s): 67
Problem Description
Mr. Hdu is an painter, as we all know, painters need ideas to innovate , one day, he got stuck in rut and the ideas dry up, he took out a drawing board and began to draw casually. Imagine the board is
a rectangle, consists of several square grids. He drew diagonally, so there are two kinds of draws, one is like ‘\’ , the other is like ‘/’. In each draw he choose arbitrary number of grids to draw. He always drew the first kind in red color, and drew the
other kind in blue color, when a grid is drew by both red and blue, it becomes green. A grid will never be drew by the same color more than one time. Now give you the ultimate state of the board, can you calculate the minimum time of draws to reach this state.
The first line is an integer T describe the number of test cases.
Each test case begins with an integer number n describe the number of rows of the drawing board.
Then n lines of string consist of ‘R’ ‘B’ ‘G’ and ‘.’ of the same length. ‘.’ means the grid has not been drawn.
1<=n<=50
The number of column of the rectangle is also less than 50.
Output
Output an integer as described in the problem description.
Each test case begins with an integer number n describe the number of rows of the drawing board.
Then n lines of string consist of ‘R’ ‘B’ ‘G’ and ‘.’ of the same length. ‘.’ means the grid has not been drawn.
1<=n<=50
The number of column of the rectangle is also less than 50.
Output
Output an integer as described in the problem description.
Output an integer as described in the problem description.
2
4
RR.B
.RG.
.BRR
B..R
4
RRBB
RGGB
BGGR
BBRR
3
6
題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=5319
題目大意:刷牆,只能按兩個斜45度刷,一個是紅色,一個是藍色,紅遇藍變綠,每個格子同種顏色只刷一次,每次刷必須是連續的一段,問答案目標狀態最少刷幾次
題目分析:按兩個方向列舉,\這種樣子刷,若當前點是紅或綠且斜前一個點不是紅且不是綠,則必然要刷一次,同理/這樣刷時也判斷一下,可是為什麼這樣算出來就是最小的呢,因為我只在必須要刷的時候才刷,所以顯然這樣就是最優的
#include <cstdio>
#include <cstring>
char s[55][55];
int main()
{
int T;
scanf("%d", &T);
while(T--)
{
int n;
scanf("%d", &n);
for(int i = 1; i <= n; i++)
scanf("%s", s[i] + 1);
int m = strlen(s[1] + 1);
int ans = 0;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
if(s[i][j] == 'R' || s[i][j] == 'G')
if(!(s[i - 1][j - 1] == 'R' || s[i - 1][j - 1] == 'G'))
ans ++;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
if(s[i][j] == 'B' || s[i][j] == 'G')
if(!(s[i - 1][j + 1] == 'B' || s[i - 1][j + 1] == 'G'))
ans ++;
printf("%d\n", ans);
}
}
相關文章
- HDU 4288-Coder(模擬)
- 2013杭州網路賽C題HDU 4640(模擬)
- YT15-HDU-字串的模擬字串
- 雙開《GTA》和《模擬市長》:騰訊玩自動駕駛的清奇腦洞自動駕駛
- 模擬題
- HDU 4985-Little Pony and Permutation(模擬置換)
- 模擬面試題面試題
- 人工智慧大腦模擬人工智慧
- HDU 5237-Base64(模擬-K輪加密)加密
- 模擬賽雜題
- 2012 天津站B題||hdu4432 進位制轉換 模擬
- HDU 6015-Skip the Class(模擬-結構體排序)結構體排序
- Google開發人腦模擬器:電腦自學成才Go
- 紅遍海外各國,霸榜國內春節檔,《腦洞大師》不只有腦洞
- 洞見RSA202|入侵和攻擊模擬技術探索實踐
- 腦洞golang embed 的使用場景Golang
- Android模擬器電腦鍵盤不能用Android
- WebGL three.js學習筆記 使用粒子系統模擬時空隧道(蟲洞)WebJS筆記
- C語言模擬試題1C語言
- C語言模擬試題2C語言
- C語言模擬試題3C語言
- C語言模擬試題4C語言
- C語言模擬試題5C語言
- C語言模擬試題6C語言
- 個人收藏oracle模擬題part 1Oracle
- 10.31 模擬賽題解
- 【題解】「CSP模擬賽」雨天 rainAI
- 腦洞大開!機器學習與AI突破(附連結)機器學習AI
- 為銀行業變革“開腦洞”行業
- 模擬人腦算什麼,AI“扮”狗腦瞭解一下?AI
- 通往強人工智慧,少不了的模擬大腦人工智慧
- mac電腦上命令列啟動安卓模擬器Mac命令列安卓
- 谷歌人工智慧模擬人腦 壓縮圖片谷歌人工智慧
- HDU 4119Isabella's Message2011成都現場賽I題(字串模擬)字串
- 模擬
- JavaScript專題之模擬實現newJavaScript
- JavaScript專題之模擬實現bindJavaScript
- csp模擬27-金箱子(題解)