摘要: 某种序列时间限制:3000 ms | 内存限制:65535 KB难度:4描述数列A满足An = An-1 + An-2 + An-3, n >= 3编写程序,给定A0, A1 和 A2, 计算A99输入输入包含多行数据 每行数据包含3个整数A0, A1, A2 (0 #include #define MAX 1010int a[MAX],b[MAX],c[MAX],sum[MAX];void init(int x,int *a){ int i=0; while(x) { a[i++]=x%10; x/=10; }}int main(){ ... 阅读全文
posted @ 2014-03-16 17:49 龙腾四海365 阅读(425) 评论(0) 推荐(0)
摘要: 整数划分时间限制:3000 ms | 内存限制:65535 KB难度:3描述将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,其中n1≥n2≥…≥nk≥1,k≥1。正整数n的这种表示称为正整数n的划分。求正整数n的不同划分个数。例如正整数6有如下11种不同的划分:6;5+1;4+2,4+1... 阅读全文
posted @ 2014-03-16 16:44 龙腾四海365 阅读(342) 评论(0) 推荐(0)
摘要: 动态规划的基本思想:将一个问题分解为子问题递归求解,且将中间结果保存以避免重复计算。通常用来求最优解,且最优解的局部也是最优的。求解过程产生多个决策序列,下一步总是依赖上一步的结果,自底向上的求解。动态规划算法可分解成从先到后的4个步骤:1. 描述一个最优解的结构,寻找子问题,对问题进行划分。2. 定义状态。往往将和子问题相关的各个变量的一组取值定义为一个状态。某个状态的值就是这个子问题的解(若有k个变量,一般用K维的数组存储各个状态下的解,并可根 据这个数组记录打印求解过程。)。3. 找出状态转移方程。一般是从一个状态到另一个状态时变量值改变。4.以“自底向上”的方式计算最优解的值。5.从已 阅读全文
posted @ 2014-03-16 12:00 龙腾四海365 阅读(317) 评论(0) 推荐(0)
摘要: 苹果时间限制:3000 ms | 内存限制:65535 KB难度:3描述ctest有n个苹果,要将它放入容量为v的背包。给出第i个苹果的大小和价钱,求出能放入背包的苹果的总价钱最大值。输入有多组测试数据,每组测试数据第一行为2个正整数,分别代表苹果的个数n和背包的容量v,n、v同时为0时结束测试,此时不输出。接下来的n行,每行2个正整数,用空格隔开,分别代表苹果的大小c和价钱w。所有输入数字的范围大于等于0,小于等于1000。输出对每组测试数据输出一个整数,代表能放入背包的苹果的总价值。样例输入3 31 12 13 10 0样例输出2来源动态规划经典问题 #include #include i 阅读全文
posted @ 2014-03-16 11:57 龙腾四海365 阅读(125) 评论(0) 推荐(0)
摘要: 开心的小明时间限制:1000 ms | 内存限制:65535 KB难度:4描述小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行”。今天一早小明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N 元。于是,他把每件物品规定了一个重要度,分为5 等:用整数1~5 表示,第5 等最重要。他还从因特网上查到了每件物品的价格(都是整数元)。他希望在不超过N 元(可以等于N 元)的前提下,使每件物品的价格与重要度的乘积的总和最大。设第j 件物品的价格为v[j], 阅读全文
posted @ 2014-03-16 11:55 龙腾四海365 阅读(229) 评论(0) 推荐(0)
摘要: 问题描述Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路。道路被用来连接N个牧场,牧场被连续地编号为1到N。每一个牧场都是一个奶牛的家。FJ计划除去P条道路中尽可能多的道路,但是还要保持牧场之间 的连通性。你首先要决定那些道路是需要保留的N-1条道路。第j条双向道路连接了牧场Sj和Ej(1 2 #include 3 #include 4 using namespace std; 5 int pre[10010],s[10010]; 6 typedef struct IN 7 { 8 int a,b; 9 int c;10 }IN;11 IN mp[... 阅读全文
posted @ 2014-03-16 11:26 龙腾四海365 阅读(1158) 评论(0) 推荐(0)