2016.10.6总结:
[1]stairs
这道题就是一个简单的DP,其实因该叫递推,f[i]表示走到第i个楼梯时的最少步数,可以发现,如果这个楼梯不是坏的那么就可以推出一条公式:
F[i]:=f[i-1]+f[i-2]+f[i-3]; 因为坏的楼梯我们是不走的,所以就算加到坏的楼梯上面,也只会加0。(PS:f:int64[题目要求])
[2]Queen
这题就是一题改了一点条件的八皇后问题。也就是N皇后,只需要在N皇后里多加一个bz数组,记录下他的位置,按题目要求判断它是否能放,并省去对角线的判断,即可。
[3]pond
这题就是等于纯打表,也可以说是循环打表。首先我们可以发现,开头和结尾时永远不会变的,XXX......OOO......__
例如 6 开头是XXXXXXOOOOOO__
结尾是__XOXOXOXOXOXO
所以过程就是每次做分两段为一组,也就是:
XXXXXXOOOOOO__
XXXXX__OOOOOXO
XXXXXOOOOO__XO
也就是 (1)找到XO和__,交换。
(2)从后往前找,找到第一个OO,再找到__,交换。即可。
但我们发现,XXX__OOOXOXOXO以后的都不相同,完全没有规律。所以简单地打表就行了。也就是
XXXOXOO__OXOXO
X__OXOOXXOXOXO
XOXOXO__XOXOXO
__XOXOXOXOXOXO
在后面删掉两个XO
XXXOXOO__O
X__OXOOXXO
XOXOXO__XO
__XOXOXOXO
最后没次循环N-4次,输出XO即可。
[4]power
一题动态规划题,F[I,J]表示从第i个合并到第j个的最小值。
状态转移方程:if f[i,j]=0 or f[i,j]>f[j,k]+f[k2,i-k]+sum[j,i] then
f[i,j]:=f[j,k]+f[k2,i-k]+sum[j,i]。
Sum[i,j]表示从i到j的和。
K2是k+j 但是我们要取(k+j-1)mod n+1,因为有k+j=n的情况。
最后输出max(f[i,n]);