1. 常见的数列总结(1)斐波那契数列: 如何实现斐波那契数列,我们可以采取如下方法: (1)递归求解(慢)(2)递推法 (3)矩阵快速幂 下面给出矩阵快速幂的由来: 除了这些问题,我们对于斐波那契数列还可能涉及高精度数的处理问题。(2)卡特兰数 卡塔兰数是组合数学中一个常...
分类:
编程语言 时间:
2015-01-24 18:35:20
阅读次数:
237
题意就是
一个人, 站在坐标为1的点处,然后每次走路有p的概率一下走出去坐标1,1-p的概率一下走出去坐标2
路上某些点(n
想一下就知道这些雷之间实际上是独立不相关的
可以分段考虑
然后互相之间乘一下就行
假设有个雷在x点
现在人在坐标1
然后不踩雷就得从1点到x-1点
并且从x-1点迈出坐标2到x+1
从x-1迈出坐标2到x+1的概率是1-p
之前1到x-1这段...
分类:
其他好文 时间:
2015-01-21 22:31:08
阅读次数:
214
题解:
f[i][j]表示前i个数分成j段
【段:两个数=则为一段】
然后转移方程f[i][j]=f[i-1][j-1]*j+f[i-1][j]*j
就是不增加段,那么第i个数可以放到f[i-1][j]时的任意段中
增加段,那么我们随意插到某空中
代码:
#f[i][j]=f[i-1][j-1]*j+f[i-1][j]*j
ans=[0]*60
f=[ ([0]*6...
分类:
编程语言 时间:
2015-01-21 11:39:22
阅读次数:
182
题解:
代码里面有注释。
注意:
Python2中的中文字符即使注释了,也会CE(当然,因为Python是直接运行,不编译,所以显示WA)
呃,而本地的Python3就不管它了。。
所以我的代码需要删掉中文注释再交233。
代码:
# n!(A(n+1,2)*A(n+3,m)+2*(n+1)*A(n+2,m-1)*m)
# 首先男生随便放 这样是n!种摆法。
# 然...
分类:
编程语言 时间:
2015-01-21 10:13:51
阅读次数:
221
Catalan数: 令h(1)=1,h(0)=1,catalan数满足递归式: h(n)= h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1) (其中n>=2) 另类递归式: h(n)=((4*n-2)/(n+1))*h(n-1); 该递推关系的解...
分类:
其他好文 时间:
2015-01-20 23:49:48
阅读次数:
256
原题地址动态规划题。最直观的想法就是用cut[i][j]表示子串s[i..j]的最小分割数,则有如下规则:1. 如果s[i..j]是回文串,则cut[i][j]=02. 如果s[i..j]不是回文串,则枚举分割点,将原字符串切成两个子串,求解子问题。递推公式:cut[i][j] = min{cut[...
分类:
其他好文 时间:
2015-01-20 17:31:50
阅读次数:
165
对于动态规划问题,往往存在递推解决方法,这个问题也不例外。要求长度为i的序列的Ai{a1,a2,……,ai}最长递增子序列,需要先求出序列Ai-1{a1,a2,……,ai-1}中以各元素(a1,a2,……,ai-1)作为最大元素的最长递增序列,然后把所有这些递增序列与ai比较,如果某个长度为m序列的末尾元素aj(j<i)比ai要小,则将元素ai加入这个递增子序列,得到一个新的长度为m+1的新序列,...
分类:
其他好文 时间:
2015-01-20 15:55:42
阅读次数:
140
#include
#include
#include
#include
#include
#include
using namespace std;
const int MAXN = 1000;//数字位数,最多可存储1000位的整数。
struct bign
{
int len, s[MAXN];//len表示当前数字的长度(多少位),s用来存储这个数,倒着存。
...
分类:
其他好文 时间:
2015-01-19 22:49:33
阅读次数:
202
/*
核心思想:除法化减法,考察从被除数里最多能减去几个除数,
商就为几。
就是考察除数的1次倍,10次倍,100次倍.....分别有几个。
*/
#include
#include
#define MAX_LEN 200
char szLine1[MAX_LEN + 10];
char szLine2[MAX_LEN + 10];
int an1[MAX_LEN + 10]; //被除数,...
分类:
其他好文 时间:
2015-01-19 21:00:15
阅读次数:
147
//加法
#include
#include
#define MAXN 200
int an1[MAXN+10];
int an2[MAXN+10];
char szLine1[MAXN+10];
char szLine2[MAXN+10];
int main()
{
scanf("%s",szLine1);
scanf("%s",szLine2);
int i,j;
memset...
分类:
其他好文 时间:
2015-01-19 20:59:47
阅读次数:
132