博客
关于我
2015蓝桥杯java决赛C组 试题解析
阅读量:640 次
发布时间:2019-03-14

本文共 871 字,大约阅读时间需要 2 分钟。

蓝桥村的居民集会问题需要找到最佳的集会地点,使得所有家庭的路程开销最小。我们可以通过动态规划来解决这个问题,维护一个数组dp,其中dp[i]表示前i个家庭选择一个集会地点的最小开销。初始化时,dp[0]为0,其他为无穷大。遍历每个家庭,更新dp[i]为min(dp[i-j] + j * ti),其中j是家庭i的位置。最终dp[n]即为所求。

Java代码如下:

public class Main {    public static void main(String[] args) {        Scanner input = new Scanner(System.in);        int n = input.nextInt();        int L = input.nextInt();        int[] di = new int[n];        int[] ti = new int[n];        for (int i = 0; i < n; i++) {            di[i] = input.nextInt();            ti[i] = input.nextInt();        }        int[] dp = new int[n + 1];        Arrays.fill(dp, Integer.MAX_VALUE);        dp[0] = 0;        for (int i = 1; i <= n; i++) {            for (int j = 1; j <= i && j <= L - di[i-1]; j++) {                dp[i] = Math.min(dp[i - j] + j * ti[i - 1], dp[i]);            }        }        System.out.println(dp[n]);    }}

最终的路程开销和为:20

转载地址:http://wmulz.baihongyu.com/

你可能感兴趣的文章
SharePoint 2013 图文开发系列之定义站点模板
查看>>
PCB生产流程详解-ChatGPT4o作答
查看>>
PCB设计十条黄金法则
查看>>
SpringSecurity框架介绍
查看>>
PCI Express学习篇:Power Management(二)
查看>>
pcie握手机制_【博文连载】PCIe扫盲——Ack/Nak 机制详解(一)
查看>>
pcm转wav的方法及代码示例
查看>>
PC史上最悲剧的16次失败
查看>>
PC端恶意代码分析Lab1.1-5.1,从零基础到精通,收藏这篇就够了!
查看>>
PC端稳定性测试探索
查看>>
PC端编辑 但能在PC端模拟移动端预览的富文本编辑器
查看>>
PDB文件:每个开发人员都必须知道的
查看>>
springMVC学习(二)
查看>>
Pdfkit页眉和页脚
查看>>
PDF中的Pandoc语法突出显示不起作用
查看>>
pdf从结构新建书签_在PDF文件中怎样创建书签
查看>>
pdf做成翻页电子书_第一弹:常见BOOX电子书阅读器问题解答,这些技能你都会吗?...
查看>>
PDF工具箱-分割提取合并
查看>>
pdf打印骑缝章
查看>>
PDF文字识/编辑?这个工具真的很强大!
查看>>