思路:知道要用DP做,但是一开始思路是错的。后来参考了http://blog.csdn.net/pickless/article/details/12034365才意识到可以在整个区间的每一点切开,然后分别计算左子区间和右子区间的最大值,然后再用O(n)时间找到整个区间的最大值。看来以后碰到与2相关...
分类:
其他好文 时间:
2014-05-19 14:13:38
阅读次数:
286
LongestOrderedSubsequenceTime Limit: 1000ms,
Special Time Limit:2500ms, Memory Limit:32768KBTotal submit users: 1937,
Accepted users: 1621Problem 1000...
分类:
其他好文 时间:
2014-05-19 12:19:40
阅读次数:
207
题目链接:
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3769
Diablo III
Time Limit: 2 Seconds Memory Limit: 65536 KB
Diablo III is an action role-playing video game. A fe...
分类:
其他好文 时间:
2014-05-18 18:40:35
阅读次数:
345
Labyrinth
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 519 Accepted Submission(s): 174
Problem Description
度度熊是一只喜欢探险的熊,一次偶然落...
分类:
其他好文 时间:
2014-05-18 16:04:51
阅读次数:
304
题目:
链接:点击打开链接
算法:
完全背包。
状态转移方程: dp[j] += dp[j-i];dp[j]表示钱j可以兑换的方法,,,,,i是硬币的价值1,2,3,,,个数是不限的
代码:
#include
#include
#include
using namespace std;
int dp[40000];
int n;
int main(...
分类:
其他好文 时间:
2014-05-18 15:43:08
阅读次数:
265
这题是0--1背包的变形,对理解0--1背包有很大的帮组
题意:要选一些牛去参见展览,每个牛有幽默、智慧两个选择标准,要求选的这些牛使得幽默和智慧的总和最大且幽默和智慧的每个总和都必须是大于等于0;
刚看的这个题目是时候,知道是一个0--1背包的的题目,但就是不知道怎么来写出状态转移方程,因为题中的两个变量都是有负值的。
看了大牛的解题报告才知道。
我们可以把幽默个变量看成...
分类:
其他好文 时间:
2014-05-18 14:42:34
阅读次数:
318
windy定义了一种windy数。
不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。
windy想知道,在A和B之间,包括A和B,总共有多少个windy数?
Input
包含两个整数,A B。
满足 1
Output
包含一个整数:闭区间[A,B]上windy数的个数。
Sample Input
1 10
...
这是一题基础的完全背包,适合初学者来理解完全背包
题意:有 n 种债券可以买 , 每种债券的价格为 w , 每一年的收益为 p , 给你 wi 块钱 , 和 years 年的时间 , 我们最大的收益是是多少?
因为 , 每种债券可以买任意多个 , 所以这是一个简单的完全背包,但是由于基数(体积)太大 , 所以需要优化一下 :
由题意我们知道 , 每种债券的价格都是 10...
分类:
其他好文 时间:
2014-05-18 07:50:38
阅读次数:
251
题目大意:
给出一个数n,求m,使得m的长度和n相等,能被k整除。有多个数符合条件输出与n在每位数字上改变次数最小的。改变次数相同的输出大小最小的。
共有三种解法:DP解法,记忆化搜索和DFS+强剪枝的算法。
后两种以后会更新。
1、DP解法:
解题思路:
DP[i][j]表示数n的前i位除以k余j最小改变几位。
DP[len][0]就表示数n被k整除最小改变几位。
根据这个...
分类:
其他好文 时间:
2014-05-18 06:02:56
阅读次数:
319
题目:
链接:点击打开链接
题意:
知道存钱罐的质量和装满硬币的存钱罐的质量,然后是不同硬币的价值和质量,求出存钱罐里钱币的最小价值。
算法:
完全背包问题,银币的个数是不限的。
思路:
状态转移方程:j = 0时,价值为0
dp[j] = min(dp[j],dp[j-w[i]]+v[i]);//表示质量为j的钱币,含有的最小的价值
代码:
#...
分类:
其他好文 时间:
2014-05-18 04:02:59
阅读次数:
195