小编And*_*ott的帖子

将K资源公平地划分给N个人

K圆圈上有一些点代表宝藏的位置.N人们想分享宝藏.您希望在所有这些中公平地划分宝藏,使得具有最大值的人与具有最小值的人之间的差异尽可能地最小.

  • 他们都在圈子上采取连续的一组点.也就是说,他们不能拥有分割的宝藏.
  • 必须分配所有的宝藏
  • 每个宝藏应该只属于一个人.

例如,如图中所示,如果有4个宝藏和2个人,则最佳划分方式是

在此输入图像描述

(6,10)和(11,3)=>相差2.

1 <= n <= 25

1 <= k <= 50

我该如何解决这个问题呢?我计划计算所有点的平均值并继续添加资源,直到它们小于每个人的平均值.但尽管很明显,它并不适用于所有情况.

如果有人投光,我会很高兴的.

algorithm math discrete-mathematics

6
推荐指数
1
解决办法
216
查看次数

一个范围内的已连接城市数量

在阵列A中有N个城市.还有一辆自行车可以在城市之间的最多K个单位旅行.

我们需要回答Q问题.每个查询都具有LR X形式.它询问可从城市X到达的城市数量,这些城市在A中的L和R之间(1 - 索引).每个城市都有一个汽油泵,因此您可以假设燃料在到达时会得到补充.

例:

A = [4,3,1,9,6],K = 2

Q1 = 1 3 6 =>(3)

Q2 = 1 5 3 =>(4)

在Q1,从6号城市出发,您可以前往4号城市,然后前往3号城市,然后前往1号城市.

在第二季度,从3号城市出发,您可以前往9号城市以外的所有城市.

约束:

N <= 10 ^ 5且Q <= 10 ^ 5且K <= 10 ^ 8

我该如何解决这个问题?显然,不可能从每个X执行DFS/BFS,因为它非常昂贵并且会超时.我试着想到Disjoint集合加入彼此距离K的城市,但我对它没有一个非常明确的想法.

任何帮助表示赞赏.谢谢!

algorithm graph graph-algorithm

5
推荐指数
1
解决办法
73
查看次数

Java中静态内部类的私有构造函数

我是 Java 新手,我发现我们不能将构造函数为private. 但是,我遇到了这段代码,它创建了一个子类,其超类的构造函数是私有的。

简而言之:

这有效:

class A {
    static class B {
        private B() {
            out.println("Constructor of B");
        }
    }

    static class C extends B {
        C() {
            out.println("Constructor of C");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然这不会:

class B {
    private B() {
        out.println("Constructor of B");
    }
}

class C extends B {
    C() {
        out.println("Constructor of C"); // No default constructor available for super class
    }
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我了解这里发生了什么吗?

java inheritance static constructor

4
推荐指数
1
解决办法
113
查看次数