您的位置:首页 > 大数据 > 人工智能

HDU 5319-Painter

2016-07-26 21:22 453 查看

HDU 5319-Painter

题目大意:R要\着画,B要/着画,G是R和B的叠加,问最少几画能完成图

解题思路:遍历模拟

#include <stdio.h>
#include <iostream>
#include <string.h>
using namespace std;
int main() {
int n;
int m;
cin >> n;
while(n--) {
char a[100][100];
cin >> m;
getchar();
int count = 0;
for(int i = 0; i < m; i++)
gets(a[i]);
int l = strlen(a[0]);
for(int i = 0; i < m; i++)
for(int j = 0; j < l ;j++) {
if(a[i][j] == 'R' || a[i][j] == 'G') {
count++;
for(int q = i, p = j; q < m && p < l;q++,p++) {
if(a[q][p] == 'R')
a[q][p] = '.';
else if(a[q][p] == 'G')
a[q][p] = 'B';
else
break;
}
}
if(a[i][j] == 'B') {
count++;
for(int q = i, p = j; q < m && p >= 0;q++,p-- ) {
if(a[q][p] == 'B')
a[q][p] = '.';
else if(a[q][p] == 'G')
a[q][p] = 'R';
else
break;
}
}
}
cout << count << endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 HDU