【noi 2.6_4982】踩方格(DP)】的更多相关文章

4982:踩方格 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 有一个方格矩阵,矩阵边界在无穷远处.我们做如下假设:a.    每走一步时,只能从当前方格移动一格,走到某个相邻的方格上:b.    走过的格子立即塌陷无法再走第二次:c.    只能向北.东.西三个方向走:请问:如果允许在方格矩阵上走n步,共有多少种不同的方案.2种走法只要有一步不一样,即被认为是不同的方案. 输入 允许在方格上行走的步数n(n <= 20) 输出 计算出的方案数量 样例…
题意:一个无限大的方格矩阵,能向北.东.西三个方向走.问走N步共有多少种不同的方案. 解法: f[i]表示走 i 格的方案数. 状态转移方程推导如下--设l[i],r[i],u[i]分别为第 i 步向西.东.北的方案数,f[i]为总方案数.l[i]=l[i-1]+u[i-1], r[i]=r[i-1]+u[i-1], u[i]=l[i-1]+r[i-1]+u[i-1]f[i]=l[i]+r[i]+u[i]    =2*l[i-1]+2*r[i-1]+3*u[i-1]    =2*f[i-1]+u…
题目链接:http://noi.openjudge.cn/ch0206/4982/ 深搜很好写. DP:O(n) d[i] 为走 I 不的方案数, l[i],r[i],u[i]为第一步走 左,右,上,共走 i 步的方案数.(u[i]= d[i-1]) d[i] = l[i] + r[i] + u[i] = l[i-1] + u[i-1] + r[i-1] + u[i-1] + l[i-1] + r[i-1] + u[i-1]; = 2l[i-1] + 2r[i-1] + 3u[i-1]; = 2…
题意:N*N的方格图每格有一个数值,要求从左上角每步往右或往下走到右下角,问走2次的最大和. 解法:走一次的很好想,而走2次,不可误以为先找到最大和的路,再找剩下的最大和的路就是正解.而应该认清动态规划的实质,定义为最佳解的状态,因此要走的2次都要涵括. O(n^4)--f[i][j][k][l]表示分别走到(i,j)和(k,l)的最大和.每次从上一步分别走(下,下),(右,右),(右,下),(下,右)的状态推导就好了.f[i][j][k][l]=max(f[i-1][j][k-1][l],f[…
题目传送门OpenJ_Bailian 4103 描述 有一个方格矩阵,矩阵边界在无穷远处.我们做如下假设:a.    每走一步时,只能从当前方格移动一格,走到某个相邻的方格上:b.    走过的格子立即塌陷无法再走第二次:c.    只能向北.东.西三个方向走:请问:如果允许在方格矩阵上走n步,共有多少种不同的方案.2种走法只要有一步不一样,即被认为是不同的方案. 输入 允许在方格上行走的步数n(n <= 20) 输出 计算出的方案数量 样例输入 2 样例输出 7 解题思路: 1.递归:从 (i…
有一个方格矩阵,矩阵边界在无穷远处.我们做如下假设:a.    每走一步时,只能从当前方格移动一格,走到某个相邻的方格上:b.    走过的格子立即塌陷无法再走第二次:c.    只能向北.东.西三个方向走:请问:如果允许在方格矩阵上走n步,共有多少种不同的方案.2种走法只要有一步不一样,即被认为是不同的方案. Input允许在方格上行走的步数n(n <= 20)Output计算出的方案数量Sample Input 2 Sample Output 7 #include<cstdio> #…
描述 有一个方格矩阵,矩阵边界在无穷远处.我们做如下假设:a.    每走一步时,只能从当前方格移动一格,走到某个相邻的方格上:b.    走过的格子立即塌陷无法再走第二次:c.    只能向北.东.西三个方向走:请问:如果允许在方格矩阵上走n步,共有多少种不同的方案.2种走法只要有一步不一样,即被认为是不同的方案. 输入允许在方格上行走的步数n(n <= 20)输出计算出的方案数量样例输入 2 样例输出 7 #include<iostream> #include<cstring&…
LINK:graph HDU题库里的原题 没做过自闭. 考虑dp 设\(f_{i,j}\)表示前i个点构成j个联通块是树的方案数. 对于一次询问答案即为\(\sum_{j}f_{n,j}j^k\) 考虑如何dp出来 显然每次枚举1号所在的连通块的大小 考虑这个连通块是否构成树 即可. 具体转移不再赘述 需要预处理一下i个点的树的个数 i个点的连通块个数 i个点不是树是连通块的个数. 复杂度\(n^3\) 利用分治NTT来优化可以到 \(n^2log^2\)比较繁杂且不是正解. 正解当然是考虑生成…
这题与前面的"踩方格"重复了,而且是大坑题!题目漏写了取模12345的条件! 详细解析请见我之前的博文--http://www.cnblogs.com/konjak/p/5936888.html 而这坑在我打了高精+滚动之后才知道..我先把这个代码贴上来.. 1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<iostream> 5 using nam…
1.codevs1040 统计单词个数 1040 统计单词个数 2001年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description 给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个).要求将此字母串分成k份(1<k<=40),且每份中包含的单词个数加起来总数最大(每份中包含的单词可以部分重叠.当选用一个单词之后,其第一个字母不能再用.例如字…