区间DP
区间DP
注意点例题:
1.最优矩阵链乘2.UVA 10003 Cutting Sticks
注意点
区间dp与一般的dp有所区别,若使用递推的方法,需要注意根据dp[i][j]
中j-i递增的顺序来递推。
例题:
1.最优矩阵链乘
#include #include ...
分类:
其他好文 时间:
2014-11-10 13:50:58
阅读次数:
172
子问题与原问题........
题意:
有k个坏人k个好人坐成一圈,前k个为好人(编号1~k),后k个为坏人(编号k+1~2k)
现在有一个报数m,从编号为1的人开始报数,报到m的人就要自动死去。问当m为什么值时,可以使得在出现好人死亡之前,k个坏人先全部死掉?
PS:当前一轮第m个人死去后,下一轮的编号为1的人 为 前一轮编号为m+1的人。 前一轮恰好是最后一个人死掉,则下一轮循环回到开...
分类:
其他好文 时间:
2014-11-10 12:11:18
阅读次数:
179
"下沙野骆驼"ACM夏令营
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 833 Accepted Submission(s): 403
Problem Description
大家都知道,杭电计算机学院为...
分类:
其他好文 时间:
2014-11-10 12:05:27
阅读次数:
430
题意:现有一些1*2的小方块,求拼成3*n的矩形有多少种拼法。
思路:
既然是递推式,肯定要遇上一层发生关系。仔细观察,发现每一层应该设为2层,(奇数层不可能是矩形)而从上一次拼好的图形中的最后一层可以发现,只有两种结果(对称的也先算一种)。
即:。结果二可以==上一层的结果一和结果二两种结果(很明显,不多说,用笔画一下便知)。结果一可以==2*(上一层的结果一和结果二)以及结果一。为什么呢...
分类:
其他好文 时间:
2014-11-10 10:01:13
阅读次数:
131
题目:求一个n次整系数方程在1-m内的整数解 n<=100 系数<=10000位 m<=100W题解:最暴力的想法是枚举x,带入求值看是否为0. 这样涉及到高精度乘高精度,高精度乘单精度,高精度加高精度和高精度减高精度。 复杂度 n*m*len*len ,显然只能过30%的数据 让我们考虑优化: 我...
分类:
其他好文 时间:
2014-11-10 08:42:19
阅读次数:
249
题目链接:poj 1625 Censored!
题目大意:给定N,M,K,然后给定一个N字符的字符集和,现在要用这些字符组成一个长度为M的字符串,要求不包
括K个子字符串。
解题思路:AC自动机+DP+高精度。这题恶心的要死,给定的不能匹配字符串里面有负数的字符情况,也算是涨姿势
了,对应每个字符固定偏移128单位。
#include
#include
#includ...
分类:
其他好文 时间:
2014-11-09 23:50:19
阅读次数:
317
题意:
给你一个数列:
f(0) = 0
f(n) = g(n,f(n-1))
g(x,y) = ((y-1)*x^5+x^3-xy+3x+7y)%9973
让你求f(n) n
思路:
令m = 9973
容易观察g(x,y) = g(x%m,y)
f(x+m) = g( (x+m) %m , f(x+m-1))........
可以得到 f(x+m) = (A*f...
分类:
其他好文 时间:
2014-11-09 19:32:29
阅读次数:
299
题意: 给一串数字,给q个查询,每次查询长度为w的所有子串中不同的数字个数之和为多少。解法:先预处理出D[i]为: 每个值的左边和它相等的值的位置和它的位置的距离,如果左边没有与他相同的,设为n+8(看做无穷)。考虑已知w=k的答案,推w = k+1时,这时每个区间都将增加一个数,即后n-k个数会增...
分类:
编程语言 时间:
2014-11-08 22:00:59
阅读次数:
259
本题考查的知识点是高精度浮点数计算。
为了便于进位,本程序采用了较为独特的数据结构,即把浮点数分成整数和小数部分,分别存储在两个不同的数组中。其中整数部分数字存储在ValInt[MAX-lenInt...MAX) ,小数部分数字存储在ValDec[1...lenDec],ValDec[0]用来存储进位或借位。这样在计算中补齐0的时候不需要移动数组元素,只需移动下标即可,大大提升了效率。...
分类:
其他好文 时间:
2014-11-08 12:09:20
阅读次数:
197
本程序实现了高精度浮点数的加法,减法,乘法,乘方和除法运算,有效数字精确到MAX。
为了便于进位,本程序采用了较为独特的数据结构,即把浮点数分成整数和小数部分,分别存储在两个不同的数组中。
其中整数部分数字存储在ValInt[MAX-lenInt...MAX) ,小数部分数字存储在ValDec[1...lenDec],ValDec[0]用来存储进位或借位。
这样在计算中补齐0的时候不需要移动数组元素,只需移动下标即可,大大提升了效率。...
分类:
其他好文 时间:
2014-11-08 10:32:22
阅读次数:
301