题目:在一个n*m的迷宫中有一个轮子,轮子的每个72°的扇面被涂上一种不同的颜色。
轮子可以移动到上下左右四个方向的格子中,每次移动到相邻格子中,轮子转动72°。
每个单位时间轮子可以做两种运动:
1.移动到相邻格子;2.改变朝向,面向原来的左、右方(朝向改变90°),但不转动。
初始时轮子在'...
分类:
其他好文 时间:
2014-05-15 12:28:14
阅读次数:
450
插头DP。
从左上角到右下角,每个格子都有Val,每个格子只能经过一次,可以不经过,求最大的分数之和。
#include
#include
#include
#include
using namespace std;
const int MAXD=15;
const int HASH=10007;
const int STATE=1000010;
int N,M;
int maz...
分类:
其他好文 时间:
2014-05-15 03:43:02
阅读次数:
175
一开始没看清题,以为让当场求数独呢,吓得一直没敢做。后来发现这个题原来如此之简单,只要判断现在棋盘上的数字满不满足情况要求就可以了。
这不就是三次循环吗。。看看每一行满不满足,每一列满不满足,每个小的3*3的格子满不满足就行了。每个小3*3格子我是用求得左上角的方法来验证的。
其实觉得数独难还有一个原因是记得他在编程之美上出现过。。那上面讨论的主要是怎样构造一个数独,具体记不太清楚了,印象最深...
分类:
其他好文 时间:
2014-05-15 03:19:11
阅读次数:
185
题目链接:uva 11806 - Cheerleaders
题目大意:在一个m行n列的矩阵网里放k个石子,问有多少种画法?每个格子最多放一个石子,所有石子必须用完,并且在第一行、最后一行、第一列和最后一列都得有石子。
解题思路:容斥原理,我们可以先求说在m?n的矩阵上放k个石子的种数C(nmk),减掉四条边界不放的情况就是答案了。所以枚举16种状态,用二进制数表示说四条边中那些边是不放...
分类:
其他好文 时间:
2014-05-14 19:57:17
阅读次数:
219
从左上到右下,只能向右或向下,问一共有多少种走法。
这个问题当然可以用递归和dp来做,递归的问题是很可能会超时,dp的问题是需要额外空间。
其实没有其他限制条件的话,这个问题有个很简单的解法。给定一个格子,假设是m*n的,从左上角走到右下角的总步数是确定了的,(m+n-2)嘛,即在竖直方向一定要走m-1步,在水平方向一定要走n-1步。那有多少种解法就相当于确定什么时候往下走,什么时候往右走,也...
分类:
其他好文 时间:
2014-05-14 00:41:02
阅读次数:
447
题意:给你一个n*m方格 让你用1*2的的小方格去铺满,其中有k个方格不能被铺到。
思路:二分图建图, 以每个格子为点建图,如果可以用一块1*2的小方格铺到,就连一条边。
每个格子在X集合和Y集合都有一个点,只要任意一边被匹配到了就算可以,然后就是二分图匹配了。
上代码。
#include
#include
#include
#include...
分类:
其他好文 时间:
2014-05-14 00:17:28
阅读次数:
285
题目链接:点击打开链接
题意:给定n*m的矩阵
有一个人a从左上角↖走到右下角↘,只能↓或→走
另一个人b从左下角↙走到右上角↗,只能↑或→走
使得2个人的路径有且仅有一个格子是相交的。
统计2个人的权值和(相交格子的权值和不计)
问最大的权值和是多少。
思路:
首先转换一下题意,也就是找一个格子与4个角落连不相交的线。
我们观察相交的那个格子,那个格子的上下左右必然对应着一个角...
分类:
其他好文 时间:
2014-05-13 07:51:44
阅读次数:
280
这回又是忽略了题目中的一句话:When the coin reaches the cell that has letter ‘*’
it will be there permanently.
就是说当走到这个格子的时候,就可以定住在这个格子的了。不过这个时候也可以从别的方向走过来,所以题目的真正意思是,在k步内走到这个格子使用的最小的修改指令是多少,并不一定需要就在第k步到达这个格子。
...
分类:
其他好文 时间:
2014-05-11 13:06:57
阅读次数:
472
http://acm.hdu.edu.cn/showproblem.php?pid=1507
大致题意:在一个n*m的格子上,黑色的地方不可用,问在白色格子上最多可放多少1*2的矩阵。
思路:建图,每个白色格子与它临近的上下左右的白色格子建边,求最大匹配,答案为最大匹配/2,因为是双向图。最后输出匹配边时,当找到一组匹配边记得将该边标记,以防重复计算。
#includ...
分类:
其他好文 时间:
2014-05-09 15:11:09
阅读次数:
300
我们可以知道每行最多可以有多少个格子不用建点,设为x[i],每列同理设为y[i],那么我们连接(source,i,x[i]),(i,sink,y[i])表示我们将一个格子不建点,那么(i,j,flag[i][j]),当i,j这个格子可以建点的时候连边表示我们不在这个格子建点,那么n*m-k-最大.....
分类:
其他好文 时间:
2014-05-09 09:13:42
阅读次数:
249