数学——递推关系
文章平均质量分 77
XDU_Skyline
Everything is over, everything is just beginning.
展开
-
例题10-15 杆子的排列 UVa1638
1.题目描述:点击打开链接2.解题思路:本题通过寻找递推关系解决。设d(i,j,k)表示让高度为1~i的杆子排成一行,从左边能看到j根,从右边能看到k根的方案数。如果开始按照从小到大把1~i-1根杆子排好了,那么高度为i的杆子可能会挡住许多杆子,很难写递推式。此时不妨换一个角度考虑:按照从大到小的顺序排列各个杆子。假设已经完成高度为2~i的杆子,那么高度为1的杆子不管放到哪里都不会挡住任何一根原创 2015-02-26 10:48:15 · 1037 阅读 · 0 评论 -
HDU 4455 Substrings (2012年杭州赛区现场赛C题)
1.题目描述:点击打开链接2.解题思路:本题利用dp解决。不过这个dp的思路的确比太容易想到。需要观察规律才能发现。我们可以从贡献值的角度考虑。以题目中给的样例来说明这种方法。通过观察相邻两个w值,我们会发现一个事实:每个大区间都包含了小区间的解(这里的解即原题中的sum值)。但是这原创 2015-08-30 13:47:04 · 735 阅读 · 0 评论 -
例题1.11 新汉诺塔问题 UVa10795
1.题目描述:点击打开链接2.解题思路:本题是经典汉诺塔问题的变形题,根据解汉诺塔问题时的思路,我们试着找递推公式来解决本题。考虑最大的盘子,设它为k,如果此时它不在目标柱子上,说明它必须移动。现在,我们定义一种参考状态:最大的盘子k在柱子1,柱子2为空,柱子3从上到下依次是1,2……k-1。根据问题的可逆性,我们只需要求出初始局面和目标局面移动成参考局面的步数之和,然后加1(移动盘子k到目标原创 2015-03-12 22:47:55 · 1013 阅读 · 0 评论 -
2.2 火柴 UVa11375
1.题目描述:点击打开链接2.解题思路:本题利用递推关系解决。首先可以把“已经使用过的火柴数i”看做状态,可以得到一个图,从前往后每添加一个数字x,就从状态i转移到了i+c[x],其中c[x]代表数字x需要的火柴数。当i=0时不允许使用数字0(当n≥6,给答案单独加上1,代表整数0)。令d(i)表示从结点0到结点i的路径条数,则答案为f(n)=d(1)+d(2)+...+d(n)。程序实现原创 2015-05-19 19:50:12 · 760 阅读 · 0 评论 -
2.2 立方数之和 UVa11137
1.题目描述:点击打开链接2.解题思路:本题利用递推关系解决。建立一个多段图,定义状态d(i,j)表示“使用不超过i的整数的立方,累加和为j”的方案数。那么根据加法原理,如果没有选择数字i的立方和就得到了j,那么方案数就是d(i-1,j);如果选择了数字i的立方和才得到了j,那么方案数是d(i,j-i^3)。即:d(i,j)=d(i-1,j)+d(i,j-i^3);这个递推式还可以降低原创 2015-05-19 20:10:01 · 915 阅读 · 0 评论 -
#301 (div.2) D. Bad Luck Island
1.题目描述:点击打开链接2.解题思路:本题利用概率dp解决。一开始想着如何推出每一个最终的概率公式,没有思路。最后发现其实可以通过概率dp解决。设状态d(i,j,k)为还有i个石头,j个剪刀,k个布时的概率,那么不难得到以下三个递推式:d(i-1,j,k)+=d(i,j,k)*(i*k)/(i*j+i*k+j*k);d(i,j-1,k)+=d(i,j,k)*(i*j)/(i*j+i*原创 2015-05-01 11:58:29 · 1060 阅读 · 0 评论 -
习题10-15 零和一 UVa12063
1.题目描述:点击打开链接2.解题思路:本题利用数位dp解决。即通过寻找数位上的递推式来加以解决。从样例可知,如果只是一个个的枚举,时间上肯定是承受不了的,必须通过寻找递推式来加以解决。通过观察,我们发现,如果一个整数n能够被k整除,即n%k==0,假如这个数的二进制形如1XXX这样的二进制,也就意味着二进制数1000的值模k的余数和二进制数XXX的值模k的余数之和正好为0。这样的话我们设d(原创 2015-04-23 19:38:22 · 1114 阅读 · 0 评论 -
2015编程之美资格赛 B 回文字符序列
时间限制:2000ms单点时限:1000ms内存限制:256MB描述给定字符串,求它的回文子序列个数。回文子序列反转字符顺序后仍然与原序列相同。例如字符串aba中,回文子序列为"a", "a", "aa", "b", "aba",共5个。内容相同位置不同的子序列算不同的子序列。输入第一行一个整数T,表示数据组数。之后是T组数据,每组数据为一行字符串。原创 2015-04-20 12:14:35 · 1184 阅读 · 0 评论 -
例题1.10 正整数序列 UVa11384
1.题目描述:点击打开链接·2.解题思路:本题属于找规律题。通过多次尝试,可以发现,我们可以每次让所有大于n/2都减去n/2,这样得到的结果等价于序列1~n/2,令f(n)表示序列1~n的操作次数,那么f(n)=f(n/2)+1。边界是f(1)=1。3.代码:#define _CRT_SECURE_NO_WARNINGS #include#include#include#inc原创 2015-03-12 18:11:44 · 735 阅读 · 0 评论 -
例题1.23 遥远的银河 UVa1382
1.题目描述:点击打开链接2.解题思路:本题要求找一个矩形,使得边上的点数最大。看上去比较棘手,如果只是单纯地枚举每行,每列,再加上要统计点数,时间复杂度会高达O(N^5),无法承受。因此,需要转变思路。做了这么多题,会发现,这种带有统计目的的题目常常采用的策略就是先扫描,计算出一些必要的信息,例如前缀和等。将来处理时就能用O(1)时间得到想要的结果,便于寻找某种最优值。本题照样如此。对于原创 2015-03-15 22:06:40 · 831 阅读 · 0 评论 -
习题10-1 砌砖 UVa11040
1.题目描述:点击打开链接2.解题思路:找规律题。通过观察易得到如下递推式:(a[i][j]表示第i层,第j个位置的砖的数字)(1) a[i+2][j+1]=(a[i][j]-a[i+2][j]-a[i+2][j+2])/2;(2) a[i+1][j]=a[i+2][j+1]+a[i+2][j];(3) a[i+1][j+1]=a[i+2][j+1]+a[i+2][j+2];原创 2015-02-26 22:45:51 · 779 阅读 · 0 评论 -
例题10-14 比赛名次 UVa12034
1.题目描述: 点击打开链接2.解题思路:本题通过寻找递推关系解决。设最终答案是f(n)。假设第一名有i个人,有C(n,i)种可能,接下来有f(n-i)种可能性。最终答案是∑C(n,i)f(n-i)(i从1开始)。3.代码:#define _CRT_SECURE_NO_WARNINGS #include#include#include#include#include#inc原创 2015-02-26 12:34:03 · 1055 阅读 · 0 评论 -
HDU 5439 Aggregated Counting (2015年长春赛区网络赛C题)
1.题目描述:点击打开链接2.解题思路:本题利用打表+二分查找。仔细观察后会发现如下规律:(1):序列中,相同元素的个数构成的序列仍然是原序列;(2):如果我们按照个数来分类,可以写成下面的形式:个数 元素1 12 2, 33 4, 54 6, 7, 85 9, 10, 116原创 2015-09-16 22:37:01 · 591 阅读 · 0 评论