[JSOI2009]游戏Game
Description
Input
输入数据首先输入两个整数N,M,表示了迷宫的边长。 接下来N行,每行M个字符,描述了迷宫。
Output
若小AA能够赢得游戏,则输出一行”WIN”,然后输出所有可以赢得游戏的起始位置,按行优先顺序输出 每行一个,否则输出一行”LOSE”(不包含引号)。
Sample Input
3 3
.##
…
.#.#
Sample Output
WIN
2 3
3 2
HINT
对于100%的数据,有1≤n,m≤100。 对于30%的数据,有1≤n,m≤5。
噫我发现 [从会写模板->真正能把题码出来] 真的差距好大呀完蛋了
所以我要开放一个叫刷题记录的版块/~*u*~/
solution:
还有以前的
1.棋盘覆盖:
在n*m的棋盘上覆盖1*2的骨牌,有一些位置不能放置,求最多放得下多少张骨牌?
分析:妙啊,如果我没学二分图大概只会用状压来做,(话说好像状压好像也应该做一下的是吧)。我们可以先把棋盘染成黑白两色,相邻的棋子染成不同的颜色,然后所有的相邻的格子都有一条连线,表示他们可以成为一张牌,图中的最大匹配即为最多骨牌数。诶打着字发现一个问题:难道不用考虑什么并查集嘛,你怎么确定它是标准的二分图?拍拍脑袋发现自己好蠢,能组成一张牌的只能是一个格子以及它的一圈上,那一圈上的格子又有可能和外围一圈的格子凑成一张牌,它们放在一块有没有关系,只要不连边就好了;一个格子的周围格子一定都与中央格子一侧,即在同一边,在同一边有连线怎么办?其实根本就不用担心,周围格子只包括上下左右四个,他们是一定不能连边的,所以这一题真的非常完美。
2.求一个n*m的棋盘最多能放置多少个车?
分析:其实这道题和之前那道柯南解锁是类似的,把行和列分别连边,表示该行该列都不能再使用,最大匹配数即为最多的车的个数。
3.给定n*m的场地,中间可能设置一些障碍物,当两个卫士共线且没有障碍物阻隔时就会互相攻击,求能最多放下多少个互不攻击的卫士?
分析:如果要判断是否共线,要不要考虑解析式的问题啊??看了一下题解好像是我想多了。。。其实我觉得这一道题还是有一定的难度的,明显是前几题的升级版。本质上来说还是按照行和列来做,只是障碍物把行或列分成若干个联通块,预处理一下给联通块们编个号,行联和列联之间连线表示在该行联该列联的交点处放置一个卫兵,连了线以后那么所占的行的联通块和列的联通块就不能够再选了,最大匹配即为最多放置卫兵数6666好妙啊