Filter.javapackage com.bjsxt.dp.filter;public
interface Filter { String doFilter(String str);}SesitiveFilter.javapackage
com.bjsxt.dp.filter;public...
分类:
其他好文 时间:
2014-05-12 12:08:37
阅读次数:
249
首先是CDQ《基于连通性状态压缩的动态规划问题》论文上的题目:URAL 1519
Formula 1 #include 2 #include 3 #include 4 using namespace std; 5 const int maxn
= 15; 6 const int H...
分类:
其他好文 时间:
2014-05-12 08:14:39
阅读次数:
433
题意:有 n 个人,每个人有一个diaosi值a[i],如果第 i 个人排在第 k 位置,则他的愤怒值就为a[i]*(k-1);
过程中有一个黑屋子,可以把人暂时放到黑屋子里。
求总的愤怒值最小;
区间DP:对dp[i][j],我们考虑i到j的(j-i+1)个人,对于第i个人我们可以假设他在第k个位置,则前面就有k-1个人在他前面,j-k个人在他后面,所以dp[i][j]=m...
分类:
其他好文 时间:
2014-05-12 07:02:55
阅读次数:
275
题目链接:10253 - Series-Parallel Networks
白书的例题。
这题也是需要把问题进行转化,一个并联可以分为几个串联,然后串联可以分成边。
如此一来,最后叶子结点种数会是n,问题转化为去分配叶子结点,使得总和为n。
书上有两种方法,一种直接去递归,利用组合数学的方式去计算答案。
一种是推出递推式:
设dp[i][j]为一共j个叶子结点的树,子树的叶子最多的为i...
分类:
Web程序 时间:
2014-05-12 06:22:04
阅读次数:
447
题目链接:11038 - How Many O's?
题意:求[a.b]之间,0出现的次数。
思路:一开始一直往数位DP上去想,结果发现挺复杂的。。
把问题先转化为求0 - num的个数,在用到b的个数减去到a的个数
其实只要利用计数的乘法和加法原理,把数字对应的每一位的分成左右两边,利用乘法原理求总数,在用加法原理把所有的总数加起来就是总情况数。那么讨论一下分成两边的情况。举个例子
比...
分类:
其他好文 时间:
2014-05-11 13:16:13
阅读次数:
282
题目链接:11361 - Investigating Div-Sum Property
白书上的例题,不过没有代码,正好前几天写了一题数位DP的题目,这题也就相对轻松了。
dp[i][x][y]表示加到第i位,数字 % k,数位和 % k的组合情况数,那么现在要添加一个0 - 9的数字上去状态转移为
dp[i + 1][(x * 10 + num) % k][(y + num) % k],计...
分类:
其他好文 时间:
2014-05-11 05:23:33
阅读次数:
316
题意:求在两边人数不相差超过1个的情况下,实力尽量相等的情况
思路:从实力和的一半开始类背包操作
#include
#include
#include
#include
using namespace std;
const int MAXN = 45010;
const int MAXM = 110;
int a[MAXM];
int dp[MAXN][MAXM];
int n;
...
分类:
其他好文 时间:
2014-05-11 05:02:03
阅读次数:
279
最小编辑距离,很经典的问题,今年微软实习生的笔试有一个这个的扩展版,牵扯到模板之类的,当时一行代码也没写出来。。
dp可以很优雅的解决这个问题,状态转移方程也很明确。用pos[i][j]表示word1的前i个字符与word2的前j个字符之间的编辑距离。如果word[i-1]与word[j-1]相等,那pos[i][j]与pos[i-1][j-1]相等,否则的话,根据编辑的几种操作,可以从三种情况...
分类:
其他好文 时间:
2014-05-11 04:56:00
阅读次数:
301
题意:给出m、t、n,接着给出t行m列,表示第i个队伍解决第j题的概率。
现在让你求:每个队伍都至少解出1题,且解出题目最多的队伍至少要解出n道题的概率是多少?思路:求补集。
即所有队伍都解出题目的概率,减去所有队伍解出的题数在1~n-1之间的概率这里关键是如何求出某个队伍解出的...
分类:
其他好文 时间:
2014-05-10 22:21:45
阅读次数:
318
水了ural的dp专题前三道1009,1012,1013,都是同一个问题,只是数据规模变大了。
题意大概是这样的:求一个k进制的n位数字,满足不含前导0和不含连续两个0的个数有多少个。
dp[i][0]表示第i位为0有多少个满足条件,dp[i][1]表示i位不为0满足条件的个数,则结果就是d...
分类:
其他好文 时间:
2014-05-10 07:13:10
阅读次数:
368