因为,这两题有着似乎一样的解法所以将其放在一起总结比较,以达到更好的区分二者的区别所在。
一、区间DP
uva的Cutting Sticks是一道典型的模板题。
题目描述:
有一根长度为l的木棍,木棍上面有m个切割点,每一次切割都要付出当前木棍长度的代价,问怎样切割有最小代价。
区间DP的定义:
区间动态规划问题一般都是考虑,对于每段区间,他们的最优...
分类:
其他好文 时间:
2014-09-01 12:37:43
阅读次数:
298
给定一些木棒的长和重,安装第一根木棒时间为1分钟,然后如果安装的上一支木棒的长和重均不超过下一支木棒的长和重,那么不需要安装时间,否则要1分钟。
求最短的安装时间。...
分类:
其他好文 时间:
2014-08-30 11:16:19
阅读次数:
181
题意:找最短的木棍能够组成的长度,
hdoj 1518 的加强版
代码:
#include
#include
#include
using std::sort;
#define M 70
int s[M], vis[M];
int n, ans;
int cmp(int a, int b)
{
return a > b;
}
int dfs(int cou, int cur, ...
分类:
其他好文 时间:
2014-08-27 09:28:37
阅读次数:
158
题目链接题意 : 把每根棍往地上扔,找出最后在上面的棍,也就是说找出所有的没有别的棍子压在它的上面的棍子。思路 : 对于每根棍子,压在他上面的棍子一定是在它之后扔的棍子,所以在找的时候只要找它之后的线段是否与他相交即可。 1 //2653 2 #include 3 #include 4 #inc.....
分类:
其他好文 时间:
2014-08-26 22:46:16
阅读次数:
243
Language:
Default简体中文
Sticks
Time Limit: 1000MS
Memory Limit: 10000K
Total Submissions: 120720
Accepted: 27951
Description
George took sticks of the same length a...
分类:
其他好文 时间:
2014-08-26 11:46:45
阅读次数:
245
本题一看就知道是最长不减序列了,一想就以为是使用dp解决了。不过那是个错误的思路。
我就动了半天没动出来。然后看了看别人是可以使用dp的,不过那个比较难证明其正确性,而其速度也不快。故此并不是很好的解决方法。
所以我就直接硬算,硬模拟选择出非减子序列,选完就出答案了。
思路:
1 按照长度排序
2 按照不减原则选择重量,选一个,消灭一个。
最后消灭完了,就处理完毕,答案就自然出来了。
...
分类:
其他好文 时间:
2014-08-24 10:18:42
阅读次数:
245
Description
George took sticks of the same length and cut them randomly until all parts became at most 50 units long. Now he wants to return sticks to the original state, but he forgot how many stick...
分类:
其他好文 时间:
2014-08-21 17:10:44
阅读次数:
335
思路:
运用队列存储没有被覆盖的木棍,没加入一个棍子,就要判断一下是否队列中的棍子被覆盖,如果被覆盖,就从队列中删除;
线段交判断方法:跨立实验
Pick-up sticks
Time Limit: 3000MS Memory Limit: 65536K
Total Submissions: 9698 Accepted: 3591
D...
分类:
其他好文 时间:
2014-08-20 16:36:32
阅读次数:
217
1 /* 2 题意:将两端涂有颜色的木棒连在一起,并且连接处的颜色相同! 3 思路:将每一个单词看成一个节点,建立节点之间的无向图!判断是否是欧拉回路或者是欧拉路 4 5 并查集判通 + 奇度节点个数等于2或者0 6 */ 7 #include 8 #include 9...
分类:
其他好文 时间:
2014-08-19 19:00:15
阅读次数:
198