暗黑破坏神

暗黑破坏神【问题描述】  游戏的主人公有n个魔法,每个魔法分为若干个等级,第i个魔法有p[i]个等级(不包括0),每个魔法的每个等级都有一个效果值,一个j级的i种魔法的效果值为w[i][j],魔法升一级需要一本相应的魔法书,购买魔法书需要金币,第i个魔法的魔法书价格为c[i],而小x只有m个金币(好孩子不用修改器)  你的任务就是帮助小x决定如何购买魔法书才能使所有魔法的效果值之和最大,开始时所有魔法为0级效果值为0。【输入格式】diablo.in  第一行用空格隔开的两个整数n,m。  以下n行,描述n个魔法,第i+1行描述第i个魔法。格式如下  c[i] p[i] w[i][1] w[i][2] ... w[i][p[i]] 【输出格式】diablo.out  第一行输出一个整数,即最大效果值。  以后n行输出你的方案:  第i+1行有一个整数v[i] 表示你决定把第i个魔法学到v[i]级  如果有多解输出花费金币最少的一组  如果还多解输出任意一组【输入样例】  3 10  1 3 1 2 2  2 3 2 4 6  3 3 2 1 10 【输出样例】  11  1  0  3

#include<iostream>
using namespace std;
int n,m;
int v[101],c[101],p[101],w[101][51];
int f[101][51],d[101][51];
void shuchu(int a,int b)//递归输出所选择的每个魔法的等级
{
if(a==0) return ;
else
{
shuchu(a-1,b-d[a][b]*c[a]);
cout<<d[a][b]<<endl;
}
}
int main()
{
cin>>n>>m; //n个魔法,m个金币
for(int i=1;i<=n;i++)
{
cin>>c[i]>>p[i];//第i个魔法价格为c[i],有p[i]个等级
for(int j=1;j<=p[i];j++)
cin>>w[i][j];//第i个魔法的第j个等级的效果值为w[i][j]
}
for(int i=1;i<=n;i++)//i个魔法
for(int j=1;j<=m;j++)//j个金币
for(int k=0;k<=p[i];k++) //第i个魔法第k个等级
{
if(j<k*c[i]) break;//如果金币少于第i个魔法第k个等级的钱数 则跳出
else //否则计算到第i个魔法花费j个金币所取得的最大效果值
{
f[i][j]=max(f[i][j],f[i-1][j-k*c[i]]+w[i][k]);
d[i][j]=k;//d[i][j]表示第i个魔法花费j金币时选择的等级为k
}
}
cout<<f[n][m]<<endl;
shuchu(n,m);
return 0;
}

时间: 2024-10-13 02:20:04

暗黑破坏神的相关文章

WHYZOJ-#93. 暗黑破坏神(垃圾01背包)

[题目描述]: 无聊中的小x玩起了Diablo I... 游戏的主人公有n个魔法,每个魔法分为若干个等级,第i个魔法有p[i]个等级(不包括0).每个魔法的每个等级都有一个效果值,一个j级的i种魔法的效果值为w[i][j].魔法升一级需要一本相应的魔法书.购买魔法书需要金币,第i个魔法的魔法书价格为c[i]. 而小x只有m个金币(好孩子不用修改器) 你的任务就是帮助小x决定如何购买魔法书才能使所有魔法的效果值之和最大.开始时所有魔法为0级,效果值为0. [输入描述]: 第一行,用空格隔开的两个整

暗黑破坏神2修改盒子公式的方法

盒子公式非常多,有些我们经常使用.例如开牛场的红门,洗板子洗戒指项链等.这些公式中都含有常见的消耗品,例如小号符文,宝石,洗衣粉,牛腿等.这些东西随处可见,可是收集和整理往往给人一种麻烦之感,有没有办法简化盒子公式,让这些事情变得简单直接一些呢?有的.需要工具:MPQworkshop和D2excel.方法:利用MPQworkshop打开游戏目录中的patch_D2文件. 双击选中Diablo_ⅡLOD.txt这时会看见出来很多眼花缭乱的文件. 在左边的框中依次点选data,global,exce

android版 暗黑破坏神

大概是去年,没事玩暗黑,感觉弄到手机上玩也还是挺不错的,就在网上找些素材搞了一个,  收集装备的乐趣 还是很不错的 现在地址:http://yun.baidu.com/share/link?shareid=741541052&uk=3962537094 主页:http://diablo.bmob.cn/

Vue 学习笔记

使用Vue.js实现列表选中效果(转载) Demo new Vue({ el: "#app", data: { gameNames: ['魔兽世界', '暗黑破坏神Ⅲ', '星际争霸Ⅱ', '炉石传说', '风暴英雄', '守望先锋' ], activeName: '' }, methods: { selected: function(gameName) { this.activeName = gameName } } }) <div id="app">

游戏中的弹道学手册(转)

[1]直线单体必中飞弹 代表单位:<帝国时代1>的弓箭手,<海岛奇兵>的步兵 直线飞行,只会击中被攻击的单位,命中率100%.看起来飞弹会穿过一些单位,但其实只会击中被锁定为攻击目标的单位.如果飞弹在飞行的过程中目标单位已经被摧毁,则飞弹会继续飞行一段距离之后消失. 虽然理论上来说弓箭手的弹道应该是抛物线,但<帝国时代1>中的弓箭手是直线射击的,我们就不要对老游戏太苛求啦! [2]直线单体真实碰撞飞弹 代表单位:<合金弹头>的小手cc枪.H枪,绝大多数射击游

被忽视的赚钱细节与渠道

当你冥想自己遨游世界,驾驶着玛莎拉蒂,驰骋在美丽的海滨公路,美女如云的世界,到处都是甜蜜的笑脸,最美丽的女人都想给你生小孩,那感觉多么的爽啊,被人尊敬被人景仰,可以呼风唤雨,无所不能,所到之处可以掀起一股正能量,每个人都会因为我的幸福而幸福,太爽了,在充满爱的国度里,我们尽情的发挥我们的灵感,我们的智能越来越高,我们的寿命越 来越长,我们成为了无所不能的神,我们就像暗黑破坏神里的正义力量,我们探索世界,快速推荐人类社会发展,这就是未来的我,你们一定会爱我爱得不能自己,来吧 被忽视的赚钱细节与渠道

传《斗战神》美术创作婉拒暴雪挖角 中国游戏人缺少这份傲骨

据某国际猎头爆料,今年年初,全球第一大游戏发行商动视暴雪曾欲以百万年薪.美国绿卡等优厚待遇挖角腾讯游戏<斗战神>美术创作.该美术创作因其出色的美术功底和对场景及人物的准确把握被动视暴雪看中,并有机会参与到<暗黑破坏神3>的开发创作之中.但时值<斗战神>研发进入攻坚阶段,出于对游戏理想的坚持以及打造中国人自己的魔幻史诗网游的梦想,动视暴雪邀约被该美术创作婉拒. 暴雪地位无人能及 国际游戏公司鲜有华裔身份 在全球游戏领域,动视暴雪的地位可以与手机界的"苹果&quo

UGC

UGC是"user generated content"的缩写,中文可译为"用户生产内容", 即网友将自己DIY的内容通过互联网平台进行展示或者提供给其他用户.UGC在中国是伴随着以提倡个性化为主要特点的WEB2.0的概念兴起的. ?基本概念 在web2.0时代,网络上内容的产出主要是由用户,每一个用户都可以生成自己的内容,互联网上的所有内容由用户创造,而不只是以前的某一些人,所以互联网上的内容会飞速增长,形成一个多.广.专的局面,对人类知识的积累和传播起到了一个非

这几种游戏类型,你认识吗?

RPG,中文翻译为角色扮演,指的是玩家通过扮演游戏中的某一角色来完成游戏的完整内容,这类游戏的特点是有较长的剧情主线,以及需要较多的时间为角色练级.战斗方式基本都为回合制,战斗方式为指令战斗,并且等级在游戏中占了很大的比重. MMORPG,大型多人在线角色扮演游戏,这是几年前网游常常采用的游戏类型,游戏的玩法是在移动时自由操作,但到战斗画面则变成频率固定的攻击速度,主要通过技能输出. ARPG,动作角色扮演游戏,也是RPG的一个分支,与前两个RPG类型不同,ARPG需要玩家做出的操作更多,也更复