早就听说矩阵乘法的威力,今天培训第三题也是用矩阵优化递推,以前一直以为很难,今天静下心来好好看了看,终于稍微懂了些。。优化斐波那契数列;根据 定义 f(x+2) = f(x+1) + f(x) 可以 求出 a,b,c,d 然后因为矩阵乘法符合结合律[a*(b*c) = (a*b)*c ]用快速幂求就...
分类:
其他好文 时间:
2014-08-14 23:25:16
阅读次数:
246
http://poj.org/problem?id=3744
犯二了,,递推式,矩阵幂什么都会,但是我推得跟别人不一样,,,应该是对矩阵理解问题,,,再看看
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace...
分类:
其他好文 时间:
2014-08-14 10:56:18
阅读次数:
210
杨辉三角的多种解法
杨辉三角的相信大家很熟悉吧,但是大家能用多少中方法写出来呀,一般人都只会想到两种,递归和二项式。当用递推时,有时在解题是根本没必要需要那么多呀,而只要杨辉三角的某一行,数据小时,我们可以用二项式来计算,但是数据比较大时,二项式算也是很麻烦的,那么还有其它的方法吗?所以下面我就介绍几种计算杨辉三角的方法吧。
主要要记住第四种。。。。
完整版下载:http://downl...
分类:
其他好文 时间:
2014-08-13 22:32:37
阅读次数:
316
#include #include using namespace std;int dp[50];int main(){ int n,m; while(1) { scanf("%d%d",&n,&m); if(n==0&&m==0) break; ...
分类:
其他好文 时间:
2014-08-13 22:07:27
阅读次数:
151
对这道题目也只好说呵呵了,没注意k的范围最大才10,所以昨晚纠结了很久,没什么好的方法来处理,后来无奈想去翻翻题解,发现人家开头就来了句,因为k的范围比较小 所以.........我只好暂停马上回头看看题目,是的,k比较小所以完全可以先在询问前预处理DP一遍,
DP就比较清晰了,dp[i][j] (i>=0 && i=i && j
int n,k,w;
char s[100000...
分类:
其他好文 时间:
2014-08-13 19:07:07
阅读次数:
216
题意 建设一条河岸的污水处理系统 河岸有n个城市 每个城市都可以自己处理污水 V 也可以把污水传到相邻的城市处理 >或< 除了你传给我我也传给你这种情况 其它都是合法的 两端的城市不能传到不存在的城市
令d[i]表示有i个城市时的处理方法数 最后一个城市的处理方法有
1.V 自己处理自己的 与前i-1个城市的处理方法无关 有d[i-1]种方法
2.V...
分类:
其他好文 时间:
2014-08-13 13:13:26
阅读次数:
224
高精度加法。水。
给一长串的数字,加起来就好。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define INF 0x7fffffff
#define eps 1e-6
#define LL long long
#defi...
分类:
其他好文 时间:
2014-08-13 10:38:25
阅读次数:
206
题目:uva10564 - Paths through the Hourglass(递推)
题目大意:给出这样的两个数塔,然后给出一个值,问你能否从这个数塔中找到路径,路径上的值之和等于这个数,输出这样的路径的总数,如果多条打印路径先挑开始的位置(0..n - 1)最小的,如果这样还是有多条,在比较后面的向左向右字典序最小的。
解题思路:一开始两个数塔一个正着推,一个倒着推,结...
分类:
其他好文 时间:
2014-08-13 01:14:25
阅读次数:
302
#include
#include
typedef unsigned long long ll;
const ll MOD = (1ULL<<32);
const int N = 500001;
int t, n;
ll ans[N], frc[N];
void init() {
for (ll i = 1; i < N; i++) {
for (ll j = i; j < ...
分类:
其他好文 时间:
2014-08-13 01:14:05
阅读次数:
218
递推公式,假设第一名有i个人并列,那么:
f[n] = C(n,i) * f[n - i];
打出1 ~ 1000的所有组合数,之后记忆化搜索,需要打表。
14026995
12034
Race
Accepted
C++
0.032
2014-08-12 11:47:47
#include
#include
#incl...
分类:
其他好文 时间:
2014-08-12 22:15:44
阅读次数:
178