摘要: http://poj.org/problem?id=1836其实前不久校赛的题目就是这个题目的一个简化版本,http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2403这道题只要求出从左到右,从右到左,以及Ak1<Ak2<Ak3<...<Amid-1<Amid>Amid+1>...>Akm-2>Akm-1>Akm (k1,k2,k3....km均在1到n之间) 严格按照左边递增右边递减的序列长度去最大就好了。这里的题意和SDUT2403差 阅读全文
posted @ 2012-04-29 15:57 E_star 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 二分:返回第一个大于val的数51 3 5 6 96>>951 3 5 7 96>>7int bsearch(int val){ int l = 0, r = n; int mid = 0; while (l <= r){ mid = (l + r)>>1; if (a[mid] > val){ r = mid - 1; } else{ l = mid + 1; } } return a[l];}返回第一个大于等于val的值:int bsearch(i... 阅读全文
posted @ 2012-04-29 14:23 E_star 阅读(359) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1260题意是:给定不同级别不同价值的珍珠,问如果购买所有的珍珠最少花费。每买一种价格的珍珠就要多付10个钱。其中低等的珍珠可以用高等的珍珠进行替代才开始自己想的是对于当前等级i的珍珠要么只买这一等级的珍珠,要么用这一等级的珍珠替换所有比他低级的珍珠以求得购当前(a[1]+a[2]+a[3] +....+a[i])数量珍珠的最少费用,样例过了可是WA后来想了想对于当前状态比他低级的不应定非要用它替换,我们只要最小就可以了,如果这要对于i后面的状态(情况特别多)就不好处理了。最后看了一下discuss有人证明了,只要枚举比i低级的连续的等级用i 阅读全文
posted @ 2012-04-29 13:26 E_star 阅读(220) 评论(0) 推荐(0) 编辑