HDU5319】的更多相关文章

题意:给一个矩形染色,顺笔表示红色,逆笔表示蓝色(既一捺和一丿),交叉表示绿色,然后给你一个图,问你用多少笔能画出这个图来. 思路:对这个图直接模拟即可,如果点i,j坐标为红色,那么判断上一个路径点是否是红色,如果是则不加,所以最后求出的flag即是解,一开是以为是n*n的矩形,(/ □ \),都怪坑爹的实例.. #include <iostream> #include <stdio.h> #include <cstring> using namespace std;…
Painter Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 895    Accepted Submission(s): 408 Problem Description Mr. Hdu is an painter, as we all know, painters need ideas to innovate , one day,…
题意很好懂,大致就是三种颜色,红和蓝一起会变绿,给个终态矩阵,问从原始状态到终态最少画几笔?  按一定规则画 思路就是记红为1,蓝为2,绿为3,先遍历绿色,针对每一块绿色进行删除,每找到一块绿色,首先将它置零,然后主对角线上和它挨着的红色或绿色-1,副对角线上和它挨着的蓝色或绿色-2,ans+2: 知道所有绿色遍历完为止.然后在遍历剩余的红色和蓝色,红色块主对角线上和它挨着的红色-1(包括它)ans+1,绿色副对角线上和它挨着的蓝色-2(包括它)ans+1.  最后输出ans即可. #inclu…
Painter 题意:有一个棋盘n行,列数不超过50,用red和blue给这个棋盘涂色,每个格子每种颜色最多涂一次,如果两种颜色都涂了则该格子颜色为Green;red以斜杠'\'方式涂色,bule以'/'方式涂色.给出涂色后的棋盘,问最少涂了几次. 思路:搜索的思路没错,不过这题有点小坑,题目只告诉了行,并没有明确列,所以得自己求出.涂色时并不是一涂到底,也可以连续几个对角的格子涂色.所以不管是暴力枚举还是搜索都行. const int N=100+5; char s[N][N]; int n,…
题目链接:点击打开链接 题目大意:给一个矩形.有两把刷子,一把刷红色,一把刷蓝色,红色的方向是东南,蓝色的方向是西北,红色加蓝色等于绿色,如今已知这面墙当前的状态.求从白墙到这个状态最少刷了多少次. 思路:由于仅仅能沿对角线刷.所以要最少肯定是对角线上的连续的颜色所有一次刷完.直接模拟就可以. 哎.题目读错好几次.wa了好几发,差点报警了. #include<stdio.h> #include<string.h> int main() { char mp[55][55]; int…
题意:给一个矩形,矩形里面画了4种符号,'.'表示没画线,'R'表示画了红线,'B'表示画了蓝线,'G'表示红线和蓝线同时画了,并且矩形主对角线上只能画红线,副对角线上只能画蓝线,问最少画多少条线才能形成给定的矩形的涂色情况. 思路:实际上给定的矩形唯一对应一种画线图案,'.'对应的格子没任何线,'R'对应的格子只有一条左上至右下的线,'B'对应的格子只有一条左下至右上的线,'G'对应的格子左上至右下.左下至右上都有线,那么问题转化为求最后的线条图案形成了多少线段.具体来说,只需要对每条对角线(…