摘要: 解法一 此题是一个简单的动态规划问题,用dp[i]记做最后一步经过第i个数所得到的最大sum值,则结果=max(dp[i]),i=1,...n.考虑dp[i]的前一步会经过那里?假设dp[i]的前一步经过第j个数,则子问题dp[j]满足最优子结构。dp[i]=a[i]+max(dp[j]) .(a[ 阅读全文
posted @ 2015-11-11 15:59 曹孟德 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 问题描述:假设公司出售长度为i的钢条价格为pi,如下价格表:长度i12345678910价格pi1589101717202430 给一个n长度钢条和一个价格表,求切割方案使得总收益最大。分析:当问题长度为n时候,每隔一米有两种选择(切或者不切),从而切割方案有2n种,如果用暴力来求解,复杂度会达到... 阅读全文
posted @ 2015-11-03 20:13 曹孟德 阅读(449) 评论(0) 推荐(0) 编辑
摘要: 动态规划与分治法类似,都是构造子问题的解来求解原问题,但是与分治法不一样的是,分治法求解的是不重叠的子问题,而动态规划恰好是解决重叠子问题,如果用分治法来解决,将会反复求解子问题,使得计算效率极低,对于重叠子问题,动态规划只需要将子问题求解一遍将其记录在一表格中,需要时调用即可,这样提高了时间... 阅读全文
posted @ 2015-11-02 23:55 曹孟德 阅读(505) 评论(0) 推荐(0) 编辑
摘要: 记得用PI=acos(-1)反三角函数求,用一次排序,然后二分和贪心 阅读全文
posted @ 2015-10-20 16:16 曹孟德 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 题目“今年暑假不AC?”“是的。”“那你干什么呢?”“看世界杯呀,笨蛋!”“@#$%^&*%...”确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘... 阅读全文
posted @ 2015-10-19 10:33 曹孟德 阅读(1495) 评论(0) 推荐(0) 编辑
摘要: 题目大意,有一条长度为L和河流,中间穿插n个石凳,青蛙跳m次经过石凳后到达对岸,求青蛙每次跳跃的最大距离的最小值本题数据量大n>1是否可以在跳跃m次以内(包括m)到达对岸,具体做法通过贪心来完成,尽量每一次跳跃跨过的石凳最远,这样可以使跳跃的总次数最小3不断将区间二分,最终left==right时,... 阅读全文
posted @ 2015-10-18 21:11 曹孟德 阅读(622) 评论(0) 推荐(0) 编辑
摘要: 对于整型表达式求值,如2+3*(45-1)-2使我们日常见到的中缀表达式,而对应的后缀表达式为 2 3 45 1 - * + 2 -,而后缀表达式处理计算相对来说比较简单,于是可以先将中缀表达式转化为后缀表达式,再计算后缀表达式,下面用堆栈来实现表达式求值。 第一步:中缀表达式转换为后缀表达式 一次 阅读全文
posted @ 2015-10-03 17:13 曹孟德 阅读(1434) 评论(0) 推荐(1) 编辑
摘要: //卡格式的题目#include #includeusing namespace std;int main(){ int T,i; double money,sum,overage; cin >> T; while (T--){ sum = 0.00; for (i = 0; i > money... 阅读全文
posted @ 2015-04-29 00:00 曹孟德 阅读(142) 评论(0) 推荐(0) 编辑
摘要: /*先进先出*/#include#include //使用队列必须包含头文件using namespace std;int main(){ queueQ; //定义一个整形队列 /*入队操作*/ Q.push(1); Q.push(2); Q.push(3); co... 阅读全文
posted @ 2015-04-28 16:35 曹孟德 阅读(111) 评论(0) 推荐(0) 编辑
摘要: C++中的堆栈容器的操作包括进栈出栈,返回栈顶元素,返回栈中元素个数,判断栈是否为空等#include#include //使用堆栈必须包含头文件using namespace std;int main(){ stacks; //定义一个堆栈容器 s.push(1); s.... 阅读全文
posted @ 2015-04-27 23:39 曹孟德 阅读(314) 评论(0) 推荐(0) 编辑