摘要: http://codeforces.com/contest/313/problem/D区间DP很好的一道题目,是上周的比赛的题目了现在才补上来题意:给一个总区间,下面m个小区间,每个小区间有对应的花费,要求用这些小区间去覆盖总区间(允许有重叠),要求覆盖k个单元(不一定连续,只要k个),问最小花费是多少很典型的区间dp问题,不过数据很大,要想想怎么处理留意到,总区间长度只有300,但是可供选择的小区间的数目多达10^5个,所以可知很多区间是可以去掉的,相同的区间,我们当然只保留花费最小的,但是除此之外还能怎样再减少小区间的数目呢?while(m--) { int x,y; ... 阅读全文
posted @ 2013-06-08 21:53 Titanium 阅读(503) 评论(0) 推荐(0) 编辑
摘要: 二分比较好的二分题目,需要花点脑筋想到,另外写的细节也多题意:比较好懂,a数组有n个元素,b数组有m个元素,a数组的元素分别和b数组的元素相乘得到新的元素,那么一共会得到n*m个元素,将这些元素降序排序,找到第k大的元素是谁为检验算法正确性,一个暴力的程序很容易写出来,关键是正解是什么,ab数组的元素个数都很多,暴力会超时,而且空间也不允许使用二分,而且是嵌套的二分,两个二分的目的不同外层二分是位了枚举答案,内层二分是检验当前的答案是否符合做法:先将ab数组降序排序,那么我们知道a[1]*b[1]是最大值,a[n]*b[m]是最小值,其他元素的乘积一定在这个区间内,我们并不知道答案是多少,所以 阅读全文
posted @ 2013-06-08 19:11 Titanium 阅读(388) 评论(0) 推荐(0) 编辑
摘要: http://codeforces.com/problemset/problem/315/B数据结构?这题比赛时想到了线段树,后来发现错了,确定是数据结构方向的,一直想,想了可能有20分钟的样子,觉得可以水过去,然后就去水,然后过了,赛后这题被归为数据结构,但是觉得这个分类有时候真的不太靠谱,不知道数据结构到底怎么写,但是看别人的代码,水过去的做法更多题意:3个种操作1 x val ,把数组下标x的元素的值改为val2 val , 把整个数组每个元素的值都增加val3 x , 查询下标x的元素当前的值问题的关键是修改某个单元的值,试想2操作做了好几次,即整个数组的值加了好几个值,这时候执行1操 阅读全文
posted @ 2013-06-08 12:09 Titanium 阅读(277) 评论(0) 推荐(0) 编辑