上一页 1 ··· 8 9 10 11 12 13 14 15 下一页
摘要: 题意:问长度为L的所有01串中,有多少个不包含"101"和"111"的串。 解法:f[i][j]表示长度为i的01串中,结尾2位的十进制数是j的合法串的个数。那么,便由f[i-1][ ]逐个推出。 1 #include<cstdio> 2 #include<cstdlib> 3 #include<c 阅读全文
posted @ 2016-10-17 08:12 konjac蒟蒻 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 这题与前面的“踩方格”重复了,而且是大坑题!题目漏写了取模12345的条件! 详细解析请见我之前的博文——http://www.cnblogs.com/konjak/p/5936888.html 而这坑在我打了高精+滚动之后才知道。。我先把这个代码贴上来。。 1 #include<cstdio> 2 阅读全文
posted @ 2016-10-15 14:57 konjac蒟蒻 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 这题题意与前面的“判断整除”重复了。具体解释可看我这篇的博文。 http://www.cnblogs.com/konjak/p/5936738.html 阅读全文
posted @ 2016-10-15 11:33 konjac蒟蒻 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 题意:N个饰物,有重量和渴望程度。问在M的重量限制内能达到的最大的渴望度。 解法:经典的01问题,但有一个小技巧值得记住:用if比较大小比调用max函数快了不少,这题有100ms左右。 阅读全文
posted @ 2016-10-15 09:53 konjac蒟蒻 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 题意:有N瓶酒,不能连续喝>=3瓶的酒,问能喝的最大的酒量。 解法:同前一题相似,可以f[i][j]表示前i瓶中连续喝了j瓶的最大酒量。1.f[i][0]=f[i-1][3] ; 2.i=1或2时,f[i][j]=f[i-1][j-1]+a[i]; 3. f[i][3]=mx;也可以只用f[i]。 阅读全文
posted @ 2016-10-15 09:16 konjac蒟蒻 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 题意:n个数中不能同时选连续m个或以上,问方案数。 解法:f[i][j]表示从前i个中选,到第i个已经连续选了j个。j!=0时, =f[i-1][j-1] ; j=0时, =f[i-1][0~m-1] ; 优化1:f[i][m]存f[i-1][0~m-1],就不用多for一重。 1 #include 阅读全文
posted @ 2016-10-14 20:21 konjac蒟蒻 阅读(412) 评论(0) 推荐(0) 编辑
摘要: 题意:从自然数1到N中不取相邻2数地取走任意个数,问方案数。 解法:f[i][1]表示在前i个数中选了第i个的方案数,f[i][0]表示没有选第i个。f[i][1]=f[i-1][0]; f[i][0]=f[i-1][1]+f[i-1][0] 而若简化方程式,用f[i]表示从前i个中取数的方案数。便 阅读全文
posted @ 2016-10-14 14:33 konjac蒟蒻 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 由于noi OJ上没有Special Judge,所以我是没有在这上面AC的。但是在POJ上A了。 题意如标题。 解法:f[i][j]表示a串前i个和b串前j个且包含b[j]的最长公共上升子序列长度 首先,可用3重循环得到,k循环找到b串j之前的最大长度子序列的结尾字符b[k],得以更新现在f[i] 阅读全文
posted @ 2016-10-13 22:20 konjac蒟蒻 阅读(743) 评论(0) 推荐(0) 编辑
摘要: 题意:N*N的方格图每格有一个数值,要求从左上角每步往右或往下走到右下角,问走2次的最大和。 解法:走一次的很好想,而走2次,不可误以为先找到最大和的路,再找剩下的最大和的路就是正解。而应该认清动态规划的实质,定义为最佳解的状态,因此要走的2次都要涵括。 O(n^4)——f[i][j][k][l]表 阅读全文
posted @ 2016-10-12 21:50 konjac蒟蒻 阅读(778) 评论(0) 推荐(0) 编辑
摘要: 题意:输出最长下降路径的长度。 解法:f[i][j]表示结尾于(i,j)的最长的长度。由于无法确定4个方位已修改到最佳,所以用递归实现。 阅读全文
posted @ 2016-10-12 20:47 konjac蒟蒻 阅读(339) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 下一页