博客
关于我
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/

你可能感兴趣的文章
python基础之字符编码
查看>>
python基础之多线程与多进程(二)
查看>>
Python基础——MySQL数据库基本操作
查看>>
Python基础_列表 list
查看>>
python基础---->常用模块
查看>>
Python基础(2):控制结构
查看>>
Python基础 | 关于“循环”那些事
查看>>
python系列【仅供参考】:python 远程rdp
查看>>
python基于flask搭建http服务(四)—— Docker容器化部署
查看>>
Python块键盘/鼠标输入
查看>>
python在使用HTMLTestRunner时,报告为空,错误提示<_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf_8'>...
查看>>
python在gpu上运行_【python】python开启GPU加速
查看>>
Python在def函数中使用for循环
查看>>
Python在def函数中使用for循环
查看>>
Python在Conda环境中,但在Windows虚拟环境中没有激活
查看>>
python系列【仅供参考】:python pip 错误 ModuleNotFoundError: No module named pip._internal 解决办法
查看>>
python图像条状状噪声,使用PYTHON PIL从验证码图像中删除背景嘈杂的线条
查看>>
Python图像处理:从内存加载jpeg
查看>>
python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
查看>>
python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
查看>>