算法:poj 2063 Investment (dp 完全背包)

题目大意:

有n种债券可以买,每种的价钱分别为a(a是1000的倍数),每年利息为b 。某个人 共有钱tot(tot是1000的倍数),问他在y年后,最多可以有多少钱?

思路:

由于tot和a都 是 1000的倍数,所有在计算时可以把他们缩小1000倍,这样节约内存和时间。

按照贪心的思想,每 一年都用完全背包求出这一年最大可以得到的利息,然后下一年再用加上利息后的总钱继续计算下去……

代码:

#include<iostream>
#include<queue>
#include<stack>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<map>
#include<set>
#include<string>
#define MP make_pair
#define SQ(x) ((x)*(x))
typedef int int64;
const double PI = acos(-1.0);
const int INF = 0x3f3f3f3f;
using namespace std;  

const int MOD = 1000000007;
const int MAXN = 13;
const int ADD = 1000*100;  

int tot, y,n;
int c[MAXN], w[MAXN];
int f[100030];  

int main(){
    int nCase;
    scanf("%d", &nCase);
    while(nCase--){
        scanf("%d%d%d", &tot, &y, &n);
        for(int i=0; i<n; ++i){
            scanf("%d%d", &c[i], &w[i]);
            c[i] /= 1000;
        }  

        for(int i=0; i<y; ++i){
            for(int j=0; j<=tot/1000; ++j)
                f[j] = 0;
            for(int j=0; j<n; ++j){
                for(int v=c[j]; v<=tot/1000; ++v)
                    f[v] = max(f[v], f[v-c[j]]+w[j]);
            }
            tot += f[tot/1000];
        }
        printf("%d\n", tot);
    }
    return 0;
}

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索int
, include
, 背包问题
, const
, 贪心算法
, n年后
贪心算法的题目
背包dp、dp背包问题、双色球2063期、c 2063、hdu2063,以便于您获取更多的相关知识。

时间: 2024-09-10 07:05:58

算法:poj 2063 Investment (dp 完全背包)的相关文章

算法:poj 1155 TELE (树形背包dp)

题意 某收费有线电视网计划转播一场重要的足球比赛.他们的转播网和用户终端构成一棵树状结 构,这棵树的根结点位于足球比赛的现场,树叶为各个用户终端,其他中转站为该树的内部节点. 从 转播站到转播站以及从转播站到所有用户终端的信号传输费用都是已知的,一场转播的总费用等于传输信号 的费用总和. 现在每个用户都准备了一笔费用想观看这场精彩的足球比赛,有线电视网有权决定给哪 些用户提供信号而不给哪些用户提供信号. 写一个程序找出一个方案使得有线电视网在不亏本的情况 下使观看转播的用户尽可能多. 思路 树形

算法:poj 3345 Bribing FIPA (树形背包dp | 输入坑)

题意 有n个国家,你要获取m个国家的支持,获取第i个国家的支持就要给cost[i]的价钱 其中有 一些国家是老大和小弟的关系,也就是说,如果你获得了某个老大国家的支持, 那么这个国家的所有小弟 (包括小弟的小弟...递归下去)都会无偿免费支持你. 问最少的花费可以得到m个国家的支持 思路 这题还是比较好想的树形dp, 不过输入有些麻烦, 一开始以为每组样例结束都是'#',结果一直 RE,后来发现最后一组才是 '#'... 国家由于是直接给名字的,所以我用map<string, int>来映射保

算法:poj 1947 Rebuilding Roads (树形背包dp)

题意 给一棵树,问最少删掉几条边.使得剩下的子树中有节点个数为p个的 思路 几天前就看了 这题, 但是没什么想法,之后每天都有去想一下, 直到今天, 在我对自己方法还有怀疑 的情况下,竟然AC了 .. f(i, j) 表示子树i,保留j个节点的最少删边次数, 注意,这里保留的j个节点的子树,是指根节点 为i的且有j个节点的子树.这样理解的话, 状态转移就容易想多了. 对于子树i, 如果只保留1个节 点,那么连接它所有儿子节点的边都要删掉, 所以可以初始化 f(i, 1) = 节点i的儿子个数 f

算法:poj 1837 Balance (dp 01背包)

题目大意: 有一个天平,天平左右两边的手臂长度都是15,手臂上面有些位置会有挂钩.还有G 个砝码 (1 <= G <= 20),它们重量各不相同,在1~25中取值. 给出C个挂钩,它们的位置在 [-15..15],不会重叠.负号的代表在左边臂,正号的在右边. 要求把所有砝码都放在挂钩上,多 个砝码可以挂在同一个挂钩上,问有多少种不同的方案使天平能够平衡? 思路: 天平左臂 的力矩和是负数,右边的力矩和是正数,那么左边+右边的力矩之和,如果是正数,代表天平平衡倾向右边 ,负数代表倾向左边,为0的

算法:uva 1407 Caves (树形背包dp)

题意 一棵n个节点的树,树的边有正整数权,表示两个节点之间的距离.你的任务是回答这样的询问:从跟 节点出发,走不超过x单位的距离, 最多能经过多少节点?同一个节点经过多次, 只能算一个. 思路 这题同样是多天前看的, 在今天才想出解法的. 动态规划就是这么有意思 :) 遍历n个节点, 有两种情 况, 第一种是遍历完之后不回到出发点, 第二种是要回到出发点. 两种都可能会重复经过某些边, 但是显 然还是第二种遍历的花费会更大 在这一题中, 遍历之后不需要回到出发点. f(i, j, 0): 表示遍

算法:poj 3211 Washing Clothes(01背包)

题目大意: Dearboy和他的女朋友一起洗m件衣服,共有n总颜色(每件衣服只有一种颜色). 为 了放置不同颜色互染,每次只能洗一种颜色的衣服,在这件衣服洗完之前不能洗另外一种衣服. Dearboy和 他女朋友可以同时一起洗衣服,但是不能同时洗同一件衣服,也不能同时洗不同种颜色的衣服. 一 只每件衣服所需时间,问最少花费多少时间可以全部洗完. 分析: 首先可以很直观的判定, 一定是把一种颜色的所有衣服都洗完再接着洗另外一种颜色的衣服,洗每种颜色所有衣服的总时间是分开独 立的. 关键是洗同一种颜色

算法:hdu 2639 Bone Collector II (dp 01背包求第k优解)

题目大意: 有n件物品,每件物品有体积和价值两个属性, 一个小偷带着一个大小为v的背包,要 偷这些东西,问小偷能偷的第k大的价值是多少? 思路: 这题和典型的01背包求最优解不同, 是要求第k大的解,所以,最直观的想法就是在01背包的基础上再增加一维,用来保存前k大小的数,然后在 递推时,根据前一个状态的前k 大小的数推出下一个阶段的前k个数保存下来. d[i][j][k], 表示取前i个物品,用j的费用,第k大价值是多少 在递推d[i][j][1...k]时,先获取上一个状态d[i- 1][j

算法:poj 2923 Relocation (枚举+背包 | 状态压缩+01背包)

题目大意: 有N件家具,每件的重量为(1 ≤ wi ≤ 100), 用两辆车把他们来运送到目的地.这 两辆车的限载重量分别为C1, C2(1 ≤ Ci ≤ 100) , 问最少几趟可以把所有家具运送到目的地. 这两辆车每趟都必须一起走,即使某辆车没载东西. 思路: (一) 先上自己的方法: 枚举第一辆车可能载的家具的所有组合情况,那么用二进制来表示状态则共有 1<<n ,如果 二进制的第i位上是1,那么就表示第i件家具是由第一辆车运的. 这样就相当于把所有家具分成了两 组,一组给第一辆车运,另

算法题:UVA 10280 Old Wine Into New Bottles(dp完全背包)

Problem C: Old Wine Into New Bottles Wine bottles are never completely filled: a small amount of air must be left in the neck to allow for thermal expansion and contraction. If too little air is left in the bottle, the wine may expand and expel the c