随笔分类 -  动态规划

上一页 1 2 3
题目:最小乘车费用
摘要:题目描述假设某条街上每一公里就有一个公共汽车站,并且乘车费用如下表:公里数 1 2 3 4 5 6 7 8 9 10费用 12 21 31 40 49 58 69 79 90 101而任意一辆汽车从不行驶超过10公里。某人想行驶n公里,假设他可以任意次换车,请你帮他找到一种乘车方案,使得总费用最小注意:10公里的费用比1公里小的情况是允许的。输入格式共两行,第一行为10个不超过200的整数,依次表示行驶1~10公里的费用,相邻两数间用一个空格隔开;第二行为某人想要行驶的公里数(<=100)。输出格式仅一行,包含一个整数,表示行使这么远所需要的最小费用。题解:以前没看懂题意,今天看懂了。一 阅读全文
posted @ 2012-01-16 22:51 怡红公子 阅读(1668) 评论(0) 推荐(2)
题目:装箱问题
摘要:题目描述有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30=,每个物品有一个体积(正整数)。要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。输入格式输入:第一行是一个整数v,表示箱子容量第二行是一个整数n,表示有n个物品接下来n行,分别表示这n 个物品的各自体积输出格式一个整数,表示箱子剩余空间。题解:简单DP,不解释。#include<iostream>usingnamespacestd;intmain(){intf[20001]={0},a[20001],v,n,i,j;cin>>v>>n;for(i=1;i 阅读全文
posted @ 2012-01-16 22:42 怡红公子 阅读(263) 评论(0) 推荐(0)
题目:奖金
摘要:题目描述在获得吞噬比赛的胜利后,主办方居然只给了M(0<=M<=10000)元,一番咒骂后,你为了庆祝一番,决定用这M元买点东西.现在有N(0<n<=5000)个种类的东西让你挑选,每个东西都有一个价格(0<=W<=M)和一个价值(0<=Q<=20000),每种东西都能挑无数个,现在,你的任务是:当这M元恰好花完时,使所挑选的物品价值总和最大输入格式第一行二个数N,M接下来N行每行两个数,分别是价格和价值输出格式一个数,为当这M元恰好花完时,最大物品价值总和(数据保证存在解)题解:————————————————————————————————— 阅读全文
posted @ 2012-01-16 22:40 怡红公子 阅读(186) 评论(0) 推荐(0)
题目:大地的秘密
摘要:题目描述题目背景在你的帮助之下,三仙兽终于弄清楚了到北京的道路,于是他们收拾一下行装,出发了。第一站他们要经过被成为“米不亚亚亚亚尔”的神秘森林,由于有蓬絮这位走迷宫的高手打头阵,前进的道路变平坦了很多。但当他们来到这片森林的核心地带时,还是遇到了一点点小麻烦……题目叙述现在他们位于神秘森林的核心部位,面前有两条主要的大道,不用说,一条通向光明,一条通向黑暗。大家当然想奔向光明,远离黑暗,可是蓬絮研究了半个时辰也研究不出个所以然。倒是细心的花楹发现了线索,她在地上搜寻时,发现了遗落在草丛里的一张纸,纸上如是写道:致想要寻找出口的人们: 这里必须你们真正了解大地的运行规律,才能破解难关。 现.. 阅读全文
posted @ 2012-01-16 22:20 怡红公子 阅读(330) 评论(0) 推荐(0)
最长不下降子序列的O(n*logn)算法
摘要:刚学习的新方法,求最长不下降子序列是DP等经典问题,本来O(n*n)的算法已经是够强了,但还存在O(n*logn)的算法。~\(≧▽≦)/~。分析如下:O(nlogn)的算法关键是它建立了一个数组c[],c[i]表示长度为i的不下降序列中结尾元素的最小值,用K表示数组目前的长度,算法完成后K的值即为最长不下降子序列的长度。 具体点来讲: 设当前的以求出的长度为K,则判断a[i]和c[k]: 1.如果a[i]>=c[k],即a[i]大于长度为K的序列中的最后一个元素,这样就可以使序列的长度增加1,即K=K+1,然后现在的c[k]=a[i]; 2.如果a[i]<c[k],那么就在c[1 阅读全文
posted @ 2011-12-17 18:25 怡红公子 阅读(1541) 评论(0) 推荐(1)

上一页 1 2 3