HDU 5319 Painter
来源:互联网 发布:望京李春姬直播软件 编辑:程序博客网 时间:2024/05/22 06:44
分析:给你一个空白的图,你可以随意选几个连续的斜格子画线,红色只能\着画,蓝色只能/着画,每个格子只能被红线和蓝线涂一次,如何一个格子既有红色又有蓝色,就变成了绿色,给定你一个图,问至少画几条线。我们可以再拿一张"纸"g[60][60]来照着原图map[60][60]划线,每次都画能画的最长的长度。
# include <stdio.h># include <string.h> int main() { int i,j,k,t,n,m,ans; char map[60][60],g[60][60]; scanf("%d",&t); while(t--) { ans=0; scanf("%d",&n); for(i=0;i<n;i++) scanf("%s",map[i]); m=strlen(map[0]); for(i=0;i<n;i++) for(j=0;j<m;j++) g[i][j]='.'; for(i=0;i<n;i++) for(j=0;j<m;j++) if((map[i][j]=='R'||map[i][j]=='G')&&g[i][j]=='.') { k=0;ans++; while((i+k)>=0&&(i+k)<n&&(j+k)>=0&&(j+k)<m&&(map[i+k][j+k]=='R'||map[i+k][j+k]=='G')&&g[i+k][j+k]=='.') { g[i+k][j+k]='R'; k++; } } for(i=0;i<n;i++) for(j=0;j<m;j++) if((map[i][j]=='B'||map[i][j]=='G')&&(g[i][j]=='.'||g[i][j]=='R')) { k=0;ans++; while((i+k)>=0&&(i+k)<n&&(j-k)>=0&&(j-k)<m&&(map[i+k][j-k]=='B'||map[i+k][j-k]=='G')&&(g[i+k][j-k]=='.'||g[i+k][j-k]=='R')) { g[i+k][j-k]=map[i+k][j-k]; k++; } } printf("%d\n",ans); } return 0; }
0 0
- HDU 5319 Painter
- hdu 5319 Painter
- HDU 5319 Painter(模拟)
- HDU 5319 Painter
- HDU-5319 Painter
- HDU 5319 Painter(枚举)
- HDU 5319 Painter
- hdu 5319 Painter
- HDU 5319 Painter
- HDU 5319(Painter-暴力)
- HDU 5319 Painter
- HDU 5319 Painter
- Hdu 5319 Painter (模拟)
- HDU 5319 Painter
- HDU - 5319 Painter
- HDU 5319-Painter
- HDU 5319 Painter (模拟 脑洞题)
- hdu 5319 Painter(水)
- CentOS 最小化安装后初始化网络
- Linux查看网络状态
- java实现归并排序
- poj 3723 最大权森林 最小生成树的运用
- zookeeper配置
- HDU 5319 Painter
- 深圳的天气真不错
- 输出菱形的*塔及字母塔问题
- 不使用sizeWithFont:minFontSize:actualFontSize:forWidth:使UILabel自适应,以及自定义UITableViewCell的自定义方法
- 暑假集训第三周 STL D - 排列
- Leetcode# 67 Add Binary
- Java集合排序及java集合类详解--(Collection, List, Set, Map)
- 【Android】Sqlite数据库增删改查
- UVA - 1374 Power Calcul