题目链接:hdu 4455 Substrings
题目大意:给定一个长度为N的序列,现在有Q次询问,每次给定一个w,表示长度,输出序列中长度为w的连续子序列
的权值和。序列的权值表示序列中不同元素的个数。
解题思路:递推,先预处理处每个位置和前面相同的数据的最短距离P。dp[i]表示说长度为i子序列的权值和,dp[i+1] =
dp[i] + v - c。v为[i+1~N...
分类:
编程语言 时间:
2014-11-18 00:27:51
阅读次数:
223
题意:有n朵花排成一排,小明要么吃掉连续的k朵白花,或者可以吃单个的红花。给出一个n的区间[a, b],输出总吃花的方法数模 109+7 的值。分析:设d(i)表示吃i朵花的方案数。则有如下递推关系:d[i] = d[i-1] + d[i-k], (i ≥ k, d[0] = 1)我们在计数i+1的...
分类:
其他好文 时间:
2014-11-17 19:07:07
阅读次数:
272
题目大意:求1~n的所有排列中有多少种逆序对为k的方案数
令f[i][j]为前i个数的排列中逆序对数为j的方案数
那么我们将第i个数插入1~i-1的排列中 可以产生0~i-1个逆序对
于是有
f[i][j]=Σf[i-1][k] (j-i+1
维护前缀和即可
#include
#include
#include
#include
#define M 1010
#define MOD...
分类:
其他好文 时间:
2014-11-17 14:06:28
阅读次数:
192
Sumsets
Time Limit: 2000MS
Memory Limit: 200000K
Total Submissions: 13210
Accepted: 5300
Description
Farmer John commanded his cows to search for different sets of...
分类:
其他好文 时间:
2014-11-16 17:21:01
阅读次数:
146
每个窗口有四个小区域组成,那么不断往前递推,到达打开当前窗口时必然是那些在上面出现的窗口都已经被打开过了,那么我们可以认为是在第i个窗口的位置上出现了j , 那么in[i]++ , 只有 i 入度为0时,才说明第i 个窗口上的所有数字对应的窗口已经出现了不用再考虑了,然后建好了AOV网络模型,我们直...
分类:
其他好文 时间:
2014-11-16 01:48:42
阅读次数:
480
求区间第k大数是多少
用我惯用的线段树写法似乎不适合写主席树,看别人的代码好半天才看懂
用root表示每一个前缀树的根,思想大致是由第i-1个树构成的树建第i个树,由于加入一个数只需要log级别修改,所以建树效率很高。
主席树的精髓在于可持续化,就是说之前区间的信息不去修改它,递推加入新元素的时候,要新开log个空间来存储。因为主席树本身比较占用空间,只需改变这些空间的指向就可以重复利用不变...
分类:
其他好文 时间:
2014-11-15 18:54:35
阅读次数:
136
有n种重量和价值分别为wi,vi的物品。从这些物品中挑选总重量不超过W的物品,求出挑选物品价值总和的最大值。每种物品可以挑选任意多件。令dp[i+1][j]:=从前i种物品中挑选总重量不超过j时总价值的最大值。那么递推关系为:根据递推关系编写代码: 1 void solve() 2 { 3 ...
分类:
其他好文 时间:
2014-11-15 18:39:53
阅读次数:
233
http://poj.org/problem?id=3046
蚂蚁牙黑,蚂蚁牙红:有A只蚂蚁,来自T个家族。同一个家族的蚂蚁长得一样,但是不同家族的蚂蚁牙齿颜色不同。任取n只蚂蚁(S
这是《2.3 记录结果再利用的“动态规划” 优化递推关系式》练习题的第二题。
定义
dp[i][j] := 使用前i个家族可以配出来“元素个数为j”的集合的个数。
那么dp...
分类:
其他好文 时间:
2014-11-15 15:36:27
阅读次数:
147
【题目描述】给定R与n,求Rn的精确值,其中(0.0 0){ if (n % 2== 1) { result = result * number; } number = number * number; n = n / 2;}【小结】这道题的知识点就在于高...
分类:
其他好文 时间:
2014-11-15 15:22:52
阅读次数:
267