概率dp。一開始用了二维超时,后来加了一位记忆化就不超时了啊。dp[x][y][z]代表已经覆盖了第x行y列此时还剩下k个空格。 所以:dp[x][y][z] = p1*dp[x+1][y][z-1]+p2*dp[x][y+1][z-1]+p3*dp[x+1][y+1][z-1]+p4*dp[x][
分类:
其他好文 时间:
2016-03-01 08:35:55
阅读次数:
250
使用记忆化搜索,可大大提升时间效率.... 1 int n,W;//n为重量 2 int w[MAX],v[MAX]; 3 int dp[MAX][MAX]; 4 5 //从第i个物品开始挑选总重小于j的部分 6 int rec(int i,int j) 7 { 8 //记忆化搜索 9 /*if(d
分类:
其他好文 时间:
2016-02-29 21:35:07
阅读次数:
155
题目传送门 题意:训练指南P250 分析:DFS记忆化搜索,范围或者说是图是已知的字串构成的自动机图,那么用 | (1 << i)表示包含第i个字串,如果长度为len,且st == (1 << m) - 1则是可能的。打印与之前相似。 #include <bits/stdc++.h> using n
分类:
其他好文 时间:
2016-02-26 21:55:34
阅读次数:
228
ACM知识点分类 (红:完全没听说过 黄:听说过 绿:接触过做过题 蓝:很熟悉刷过专题 紫:见一道秒一道) 第一类:基础算法 (1) 基础算法:枚举,贪心,递归,分治,递推,构造,模拟 (2) 动态规划:背包问题,树形dp,状态压缩dp,单调性优化,插头dp (3) 搜索:dfs,bfs,记忆化搜索
分类:
其他好文 时间:
2016-02-26 18:37:06
阅读次数:
149
棋盘分割 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 501 Accepted Submission(s): 248 Problem Des
分类:
其他好文 时间:
2016-02-22 16:57:25
阅读次数:
236
记忆化数组记录从这个点的最长下降序列,然后乘以这个点的度,就是ans,维护即可。 #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn = 1e5+10; const
分类:
其他好文 时间:
2016-02-22 15:22:25
阅读次数:
127
题目链接:http://poj.org/problem?id=1163 1、递归思想:第一层到最底层的最优路径可以分解为:第一层到第二层来,再加上第二层的最优路径 状态: Time Limit Exceeded #include <algorithm> #include <stdio.h> #def
分类:
其他好文 时间:
2016-02-21 00:13:15
阅读次数:
379
How many ways Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4275 Accepted Submission(s): 2499
分类:
其他好文 时间:
2016-02-20 17:36:38
阅读次数:
175
题目链接http://poj.org/problem?id=1191 Problem: 1191User: yinjianMemory: 568KTime: 16MSLanguage: C++Result: Accepted 解题报告: 1、公式可以利用数学方法化简,就是求各个矩阵上的数(的和)的平
分类:
其他好文 时间:
2016-02-20 14:38:48
阅读次数:
156
记忆化搜索,设$f[i][j]$表示符号$i$一开始kmp指针为$j$,中间匹配了多少次,$g[i][j]$则表示匹配结束后kmp指针的位置。 时间复杂度$O(nl^2)$。 #include<cstdio> #include<cstring> const int N=26,M=105,P=1000
分类:
其他好文 时间:
2016-02-19 21:54:22
阅读次数:
276