zoukankan      html  css  js  c++  java
  • Gone Fishing

    原题网址

    代码已经写出来了,自己测试的时候没有问题,提交上去之后反馈了我一个Runtime error  一口老血啊!

    找了半天还是没找到可能越界啊啥的地方

    import java.util.Scanner;
    import java.util.Arrays;
    import java.util.Queue;
    import java.util.LinkedList;
    //import java.math.*;
    //import java.util.Arrays;
    public class Main {
        public static void main(String[] args){
            Queue<Question> question=new LinkedList<Question>();
            Scanner sc=new Scanner(System.in);
            int n=sc.nextInt();
            while(n!=0){
                int h=sc.nextInt();
                int fi[]=new int[n];
                int di[]=new int[n];
                int ti[]=new int[n-1];
                for(int i=0;i<n;i++) fi[i]=sc.nextInt();
                for(int i=0;i<n;i++) di[i]=sc.nextInt();
                for(int i=0;i<n-1;i++)ti[i]=sc.nextInt()*5;
                Question qu=new Question(n,h,fi,di,ti);
                question.add(qu);
                n=sc.nextInt();
            }
            sc.close();
            while(!question.isEmpty()){
                Question next=question.remove();
                next.doSomething();
                if(next.answer!=null)
                    System.out.print(next.answer[0]*5);
                for(int i=1;i<next.answer.length;i++)
                    System.out.print(", "+next.answer[i]*5);
                //for(int i:next.answer)
                    //System.out.print(i*5+",");
                System.out.println("
    Number of fish expected: "+next.number+"
    ");
                //System.out.println(next.ti[next.ti.length-1]);
            }
        }
    }
    class Question{
        int n;
        int h;
        int[] fi;
        int[] di;
        int[] ti;
        int[] answer;
        int number;//用于保存最多可以钓多少鱼
        private int temp;
        Question(int a,int b,int[] c,int[] d,int [] e){
            n=a;h=b;fi=Arrays.copyOf(c,c.length);di=Arrays.copyOf(d, d.length);ti=Arrays.copyOf(e, e.length);
        }
        public void doSomething(){
            int max=0;int[] temp0 = null;
            for(int i=1;i<=n;i++){
                int x=h*60;
                for(int j=0;j<i-1;j++) x-=ti[j];
                int[] temp1=getBest(i,x,Arrays.copyOf(fi, i),Arrays.copyOf(di, i));
                if(temp>max){
                max=temp;    
                temp0=temp1;
                }
            }
            number=max;
            answer=temp0;
        }
        private int[] getBest(int n,int h,int[] fi,int[] di){
            temp=0;int[] list=new int[this.n];
            for(int i=0;i<h;i+=5){
                int max=0;int flag=0;
                for(int j=0;j<n;j++){
                    if(max<fi[j]){
                        flag=j;max=fi[j];
                    }
                }
                temp+=fi[flag];
                list[flag]++;
                //h-=5;
                fi[flag]=fi[flag]>di[flag]?fi[flag]-di[flag]:0;
            }
                
            return list;
        }
    }
  • 相关阅读:
    安装LR11 时,安装Microsoft Visual c++2005 sp1运行时组件,就会提示命令行选项语法错误,键入“命令/?”可获取帮肋信息
    用jmeter监控服务器资源
    CSS获取兄弟节点
    selenium之CSS定位
    Linux find 命令详解
    git 添加文件的可执行权限
    判断三角形类型
    冒泡排序
    selenium 显示等待 隐式等待 和强制等待
    flask 基本配置和参数解释
  • 原文地址:https://www.cnblogs.com/liujinming/p/7608834.html
Copyright © 2011-2022 走看看