Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
广告牌移除Java解决方案不起作用_Java_Algorithm - Fatal编程技术网

广告牌移除Java解决方案不起作用

广告牌移除Java解决方案不起作用,java,algorithm,Java,Algorithm,有两个线程描述此问题: 为了方便起见,我再次在此重申上发现的问题: ADZEN是你们城市非常受欢迎的广告公司。在每一条路上你都能看到他们的广告牌。最近,他们面临着一个严峻的挑战,MG路——你们城市中使用最多、最美丽的道路——几乎被广告牌填满,这对自然景观产生了负面影响 在人们的要求下,ADZEN决定移除一些广告牌,这样在道路的任何部分都不会有超过K个的广告牌 你可以假设MG路是一条有N个广告牌的直线。最初,相邻的两个广告牌之间没有间隙 ADZEN的主要收入来自这些广告牌,因此广告牌移除过程

有两个线程描述此问题:

  • 为了方便起见,我再次在此重申上发现的问题:


    ADZEN是你们城市非常受欢迎的广告公司。在每一条路上你都能看到他们的广告牌。最近,他们面临着一个严峻的挑战,MG路——你们城市中使用最多、最美丽的道路——几乎被广告牌填满,这对自然景观产生了负面影响

    在人们的要求下,ADZEN决定移除一些广告牌,这样在道路的任何部分都不会有超过K个的广告牌

    你可以假设MG路是一条有N个广告牌的直线。最初,相邻的两个广告牌之间没有间隙

    ADZEN的主要收入来自这些广告牌,因此广告牌移除过程必须以这样的方式进行,即在所有可能的最终配置中,剩余的广告牌应提供最大可能的利润。配置的总利润是该配置中所有广告牌的利润值之和

    给定N,K和N个广告牌中每个广告牌的利润值,输出在给定条件下剩余广告牌可获得的最大利润



    我对这个问题的解决方案是基于这样一个观察:给定K,你可以有K+1种不同的方式来移除广告牌,而
    KI不明白你是如何做到这一点的:“给定K,你可以有K+1种不同的方式来移除广告牌。”例如,对于
    N=10,K=2
    ,你有超过
    K+1
    的选项(假设
    1
    是一个广告牌):
    1101101101
    1011011011
    1011010110
    0110110
    0101010101
    仅作为初学者。根据各个广告牌的价格,它们中的任何一个都可能有效。是的,你绝对正确,我一直坚持这种模式的想法,每次删除指定项时都会从左向右移动基于合同的ic广告牌。这就是为什么我被固定在K+1上的原因…谢谢
    public class Billboards {
    
    
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String[] nums = in.readLine().split("\\s+");
        int n = Integer.parseInt(nums[0]);
        int k = Integer.parseInt(nums[1]);
        HashMap<Integer,Long> map = new HashMap<Integer, Long>();
        
        long number;
        int index;
        int bucketsNumber = k+1;
        long sum = 0;
        for(int i=0; i<n; i++){
            number = Long.parseLong(in.readLine());
            sum+=number;
            index = i%bucketsNumber;
            if (map.containsKey(index)){
                map.put(index, map.get(index) + number);
            } else {
                map.put(index, number);
            }
        }
         long min = Long.MAX_VALUE;
         for (int key : map.keySet()){
             if (map.get(key)<min){
                 min = map.get(key);
             }
         }
         if(k==n)
             System.out.println(sum);
         else
             System.out.println(sum-min);
    
    }