贪吃的大嘴java_[蓝桥杯][算法提高VIP]贪吃的大嘴-题解(Java代码)

解题思路:多重背包

注意事项:

参考代码:

import java.util.Arrays;

import java.util.Scanner;

public class llq1{

public static void main(String[] args) {

Scanner ss=new Scanner(System.in);

int m=ss.nextInt();//容量

int n=ss.nextInt();//种类

//每件价值为1

int v[]=new int[55];//体积

int s[]=new int[55];

int f[]=new int[20010];

for(int i=0;i

v[i]=ss.nextInt();

s[i]=ss.nextInt();

}

Arrays.fill(f, 0x3f3f3f3f);

f[0]=0;

for(int i=0;i

for(int j=m;j>=0;j--) {

for(int k=0;k<=s[i];k++) {

if(j-k*v[i]<0)

break;

f[j]=Math.min(f[j], f[j-k*v[i]]+k);

}

}

}

if(f[m]>55)

System.out.println(">

else

System.out.print(f[m]);

}

}

感谢:https://www.cnblogs.com/BrokenString/p/9279544.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
吃豆豆 一、 背景描述 在完成面向对象、Swing、线程的课程后,可以开始练习本项目的部署安排。安排本练习的主要目的理解面向对象、能够用面向对象的思路去思考问题,结合Swing和现成的知识完成本项目。 二、 实现要求 使用面向对象的方式,完成本项目。 三、 实现技术 a) 熟练使用if、for等语句进行逻辑操作。 b) 分析数据的属性和方法,能够熟练地写出该数据表示的类。 c) 使用JFrame创建一个窗体。 d) 掌握ActionListener等事件的注册、添加、操作等。 e) 使用Grahpics能够绘制一般的图形、根据需要定制自己需要的复杂图形。 四、 类图 a) 类图 b) 类图说明 类名称 BigMouthFishFrame 类描述 大鱼界面类。完成大鱼的界面的绘制。该类继承JFrame。 包描述 main 函数描述 public static void main(String[] args) 程序的主函数。 BigMouthFishFrame() 构造函数。构造大鱼界面。 类名称 BigMouthFish 类描述 大鱼类。此类继承AcitonListener,实现AcitonPerformed方法,练习ActionListener的另一种实现方法。此类还练习定时器Timer的使用。此类还练习图形类Graphics的使用。 包描述 fish 函数描述 public BigMouthFish() 大鱼缺省构造函数.创建一个位置为(200,200),大小为50,方向为右,颜色为Color.CYAN,速度为10的大鱼 public BigMouthFish(int posx,int posy,int size,int direction,Color color,int speed) 根据位置、大小、方向、颜色、速度构造一个大鱼。 public void move() 大鱼移动。根据鱼的方向移动鱼。 public void changeColor(Color color) 改变大鱼身体的颜色。 public void changeDir(int direction) 改变大鱼的方向 public void paint(Graphics g) 使用画笔绘画大鱼.大鱼的头像:一个扇形的是鱼脸,上面有一个小圆是眼睛1.保存画笔颜色、2.绘制大鱼的脸、3.绘制大鱼的眼睛、4.恢复画笔颜色 类名称 FishPool 类描述 鱼池类。大鱼和小鱼放到此鱼池中,当大鱼每吃10条小鱼的时候,鱼的size加1,速度加2。每条小鱼默认存在的时间是15秒钟。10秒后自动消失。此类练习if、for、Timer、内部类等的使用。更重要的是,希望学员做这个的游戏时候能做好严谨的逻辑考虑后,再动手。难点:大鱼在鱼池边界的处理、大鱼升级时的相关问题的处理。 包描述 fish 函数描述 FishPool() 鱼池的缺省构造函数。此处需要完成上下左右键的注册功能。 private void initFishBean() 初始化小鱼。保证小鱼生成的位置与大鱼的位置不重叠。 private void beanNewPos() 小鱼重新生成新位置。保证小鱼生成的位置与大鱼的位置不重叠。 public void paint(Graphics g) 覆盖JLabel的paint事件。 private void bigFishMove(int direction) 大鱼的移动。根据大的方向,判断其是否到了鱼池边界(此处为难点)。 private boolean isTouched() 检测大鱼是否吃到了小鱼。 内部类 private class RightListenerImpl extends AbstractAction 内部类 - 向右按键事件。 private class DownListenerImpl extends AbstractAction 内部类 - 向下按键事件。 private class DownListenerImpl extends AbstractAction 内部类 - 向下按键事件。 private class LeftListenerImpl extends AbstractAction 内部类 - 向左按键事件。 private class TimerListenerImpl implements ActionListener 内部类 - 图形重回事件。 类名称 FishBean 类描述 豆豆类 包描述 fish 函数描述 public FishBean() 缺省构造函数。按位置(190,190),大小10,颜色Color.MAGENTA构造一

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值