摘要: 该题只是在完全背包基础之上加了一个条件,就是只能杀s个怪,那么我们就对每次记录每次在该忍耐点所杀的怪,如果所杀的怪大于所给的数目,那么我们就不更换经验值。怎样计算所剩的忍耐点,我们知道每一个忍耐点都是所杀怪所得到的经验值最大,那么我们只要对f进行遍历一遍,如果经验值大于等于所给的经验值,代表在该忍耐点已经可以获得了升级。#include<stdio.h>#include<stdlib.h>int DP( int add[],int reduce[], int n, int m, int k,int s ){ int f[124]={0},hash[124]={0},; 阅读全文
posted @ 2011-08-11 22:16 wutaoKeen 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 该题WA了几次,一直找不出错误,后来经过livs的指导,我们先拿出5元,这5元一定是买价钱最贵的菜,这样才能保证剩余的钱最少,那么我们还要做一件事就是选取最贵的菜,这两件事处理好了,就是一件简单的01背包。#include<stdio.h>#include<stdlib.h>int ZeroOnePack( int price[],int money,int n ,int pos,int max){ int f[1024]={0}; for( int i=1; i<=n; i++ ) { if( i!=pos ) for( int j=money-5 ; j> 阅读全文
posted @ 2011-08-11 19:40 wutaoKeen 阅读(460) 评论(0) 推荐(0) 编辑