有一类与数位有关的区间统计问题。这类问题往往具有比较浓厚的数学味道,无法暴力求解,需要在数位上进行递推等操作。这类问题往往需要一些预处理,这就用到了数位DP。本文地址:http://www.cnblogs.com/archimedes/p/numerical-digit-dp.html,转载请注明源...
分类:
其他好文 时间:
2014-05-26 12:44:11
阅读次数:
260
UVA 12034 - Race
题目链接
题意:给定n匹马,要求出可能的排名情况(可能并列)
思路:递推,dp[i][j]表示i匹马的时候有j种不同名次,那么dp[i][j]可以由dp[i - 1][j - 1]插入j个不同位置得来,或者由dp[i - 1][j]放入已有j的名次得来,得到递推式dp[i][j] = j * (dp[i - 1][j - 1] + dp[i - 1]...
分类:
其他好文 时间:
2014-05-26 05:07:44
阅读次数:
220
问题描述Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。说明:在本题中,答案是要求Fn除以10007...
分类:
其他好文 时间:
2014-05-26 00:54:58
阅读次数:
265
最近看了一些简单的动态规划方面的例题 在学习的过程中发现 有的问题虽然不难
但是第一次看还是会有些问题所以把自己弄0-1背包的问题拿出来给大家分享 不喜勿喷 网上资源特别多讲解什么的就算了
其他人画的图都不错递推关系:设所给0-1背包问题的最优值为m(i,j),即m(i,j)是背包容量为j,可选择物...
分类:
其他好文 时间:
2014-05-25 18:42:12
阅读次数:
193
HDU 4828 Grids
思路:可以转化为卡特兰数,先把前n个人标为0,后n个人标为1,然后去全排列,全排列的数列,如果每个1的前面对应的0大于等于1,那么就是满足的序列,如果把0看成入栈,1看成出栈,那么就等价于n个元素入栈出栈,求符合条件的出栈序列,这个就是卡特兰数了。然后去递推一下解,过程中需要求逆元去计算
代码:
#include
#include
const int ...
分类:
其他好文 时间:
2014-05-25 12:52:33
阅读次数:
389
辗转相除法的目的:求两个树的最大公约数
设两数为a、b(a > b),求它们最大公约数的步骤如下:
设q = a / b,r = a % b, 得a=bq+r(0≤r<b)。
1)若r = 0, 则b是a和b的最大公约数。
2)若r≠0,则继续考虑。可以证明:a 和 b 的最大公约数也是 b 和 r 的最大公约数
那么在第二种情况下公约数的关系就有一个递推传递的关系。
就是 a...
分类:
其他好文 时间:
2014-05-25 11:00:27
阅读次数:
168
初期:
一.基本算法:
(1)枚举. (poj1753,poj2965)
(2)贪心(poj1328,poj2109,poj2586)
(3)递归和分治法.
(4)递推.
(5)构造法.(poj3295)
(6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)
二.图算法:
...
分类:
其他好文 时间:
2014-05-25 01:58:06
阅读次数:
247
Elegant String
题意:给定一个字符串,由0-k数字组成,要求该串中,子串不包含0-k全排列的方案数
思路:dp[i][j]表示放到i个数字,后面有j个不相同,然后想递推式,大概就是对应每种情况k分别能由那几种状态转移过来,在纸上画画就能构造出矩阵了,由于n很大,所以用快速幂解决
代码:
#include
#include
const long long MOD = ...
分类:
其他好文 时间:
2014-05-25 00:36:34
阅读次数:
211
快速排序如同其名,是排序中性能比较好的一个排序算法,当数组是顺序的话,他的最差的时间复杂度是O(N^2),一般的时间复杂度是O(n*lgn).
快速排序的思想就是分治,每一趟排序过程都把一个数放到最终的位置上面去。然后这个位置把数组分为前半部分和后半部分。针对前半部分和后半部分再递推进行快速排序。
快排的java实现:
public class Sort {
public stat...
分类:
其他好文 时间:
2014-05-23 01:44:26
阅读次数:
218
题目链接:hdu 4826 Labyrinth
题目大意:中文题。
解题思路:不难想的递推,dp[i][j][0]从上面过来的情况,dp[i][j][1]从下面过来的情况,然后这两种情况都可以从前一列走过来。
#include
#include
#include
using namespace std;
const int N = 105;
const int INF = 0...
分类:
其他好文 时间:
2014-05-22 22:42:28
阅读次数:
350