题目:
链接:点击打开链接
题意:
xx喜欢收集鞋子,n,m,k分别表示鞋子的总数,xx的钱和鞋子的品牌数目。然后给出每个鞋子的信息有:a,是那种品牌,b,鞋子的标价,c,收藏鞋子得到的价值。对于一个收藏家来说,每种品牌的鞋子只收集一种,求出xx能够得到的最大的收藏价值。
算法:
分组背包问题。
思路:
m总的钱数是背包...
分类:
其他好文 时间:
2014-06-04 22:55:34
阅读次数:
270
最大连续子序列(HDU1003,1231)
最大递增子序列和,sum[i]=max(sum[j])+a[i],j
最长公共子序列,LCS经典算法(HDU1159)。
题解:
实际上,我没看出hdu1003和1231的本质差别,形式上的差别就是记载的东西不一样,一个是记载下标,一个是记载元素。基本就是那么回事吧。很多算法书在讨论时效都会拿这个例子来说明,让大家看到算法的力量,从一个弱渣算法到...
分类:
其他好文 时间:
2014-06-03 04:19:10
阅读次数:
279
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1525
Euclid's Game
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 1832 Accepted S...
分类:
其他好文 时间:
2014-06-03 01:38:06
阅读次数:
255
以前用树状数组做过一次,现在用线段树再刷一次。。。
首先必须先离散化。。。
然后建立2颗线段树,第一颗表示往左走,每个节点的值的分布。
第二颗表示往右走,每个节点的值的分布。
然后根据左右走的关系,判断出x,y的值。
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include
#include
#inclu...
分类:
其他好文 时间:
2014-06-03 01:25:54
阅读次数:
315
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=2102
题目:
A计划
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 8731 Accepted Submis...
分类:
其他好文 时间:
2014-06-02 23:29:29
阅读次数:
207
从一开始学离散化就对它没有半毛钱好感,感觉出这种题纯属恶心人。
可以将Top x全部取出来然后离散化,缩点。剩下的就是伸展了,不再赘述。
也有人拿线段树过,一直没有想明白. . .
#include
#include
#include
#include
#include
#include
#include
#include
#include
#pragma comment...
分类:
其他好文 时间:
2014-06-02 23:24:50
阅读次数:
338
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089题意:给出一个区间[l,r],求满足一个数的数位上没有连着62这个数字串的条件的个数。解法:数位DP的入门题。
1 #include 2 #include 3 #include 4 #include...
分类:
其他好文 时间:
2014-06-01 12:27:14
阅读次数:
229
http://acm.hdu.edu.cn/showproblem.php?pid=1429
第一次接触搜索+状态压缩 看了大神的题解 勉强把题目弄懂了。
用二进制来表示手头的钥匙有哪些,100表示有第三把钥匙,111表示有第三、二、一把,搜索下一点时,如果该点为钥匙点,则可采用|运算来
模拟拾取,显然0001 | 1000 = 1001,同理,当为相应的门时采用&运算来模拟开启,例...
分类:
其他好文 时间:
2014-06-01 10:35:21
阅读次数:
256
Description
Some strange code is sent to Da Shan High School. It's said to be the prophet's note. The note is extremely hard to understand. However, Professor Meng is so smart that he successfully ...
分类:
其他好文 时间:
2014-06-01 09:18:38
阅读次数:
246
记录3个变量。
sum[i]:当前区间被覆盖2次及两次以上的面积。
num[i]:当前区间被覆盖1次及一次以上的面积。
cover[i]:覆盖的lazy标记。
对于每一个区间.
更新操作如下:
void push_up(int_now)
{
if(cover[rt]==0)
{
num[rt]=num[rt<<1]+num[rt<<1|1];
...
分类:
其他好文 时间:
2014-05-31 17:58:57
阅读次数:
296