hihocoder216周:贪心或二分
题目链接
有N条线段,要切K刀,使得最长的线段尽量短。在最佳切割的条件下,切完之后最长的那根绳子是多长。
方法一:贪心
每次切的那一刀必然是最长的那条线段,用优先队列,每次往最长的那条线段上切一刀
方法二:二分
假设切完之后最长的绳子长度是x,那么可以求出切多少刀来。如果刀数大于K,说明最长的绳子长度小于x。依次法可以二分答案。
import java.util.Arrays;
import java.util.Comparator;
import java.util.PriorityQueue;
import java.util.Scanner;public class Main {
class Node {double dis;int cnt;double per;Node(double dis, int cnt) {this.dis = dis;this.cnt = cnt;this.per = dis / cnt;}void update(int cnt) {this.cnt = cnt;this.per = dis / cnt;}
}Main() {Scanner cin = new Scanner(System.in);int n = cin.nextInt(), m = cin.nextInt(), k = cin.nextInt();int[] a = new int[n];for (int i = 0; i < n; i++) a[i] = cin.nextInt();Arrays.sort(a);Node nodes[] = new Node[n - 1];for (int i = 0; i < nodes.length; i++) {nodes[i] = new Node(a[i + 1] - a[i], 1);}PriorityQueue<Node> q = new PriorityQueue<>(Comparator.comparing(x -> -x.per));q.addAll(Arrays.asList(nodes));int left = k;while (!q.isEmpty() && left > 0) {Node now = q.poll();now.update(now.cnt + 1);left--;q.add(now);}double ans = 0;for (Node i : nodes) {ans = Math.max(ans, i.per);}System.out.printf("%.1f", ans);
}public static void main(String[] args) {new Main();
}
}
转载于:https://www.cnblogs.com/weiyinfu/p/9504983.html
hihocoder216周:贪心或二分相关推荐
- 算法训练一(贪心、二分)(含解题思路)(上)
目录 7-1最少失约(贪心) AC代码: 7-2删数问题(贪心) 7-3区间覆盖(贪心) AC代码: 7-7加油站之最小加油次数(贪心+优先队列) AC代码: 7-8求解删数问题(贪心) AC代码: ...
- 算法训练一(贪心、二分)(含解题思路)(下)
目录 7-15种树(贪心) AC代码: 7-16会场安排问题(贪心) AC代码: 7-17最优合并问题(贪心) AC代码: 7-18简简单单的数学题(位运算 + 哈希表) AC代码: 7-19h148 ...
- POJ3122贪心或者二分(分蛋糕)
题意: m+1个人来分n个蛋糕,每个人分到的蛋糕数必须一样而且还必须是同一个蛋糕上的,问每个人最多分多少蛋糕? 思路: 能想到的方法有两种,一个是直接贪心,另一个就是二分,这个 ...
- Asia Yokohama Regional Contest 2018 K题 - Sixth Sense(思维加贪心加二分)
https://codeforces.com/gym/102082 题意 两个人玩n轮游戏,每次两个人各取一个数,并且已知对手的取数顺序,如果你取的数比他大就算赢一轮,求能赢最多轮次的取法,如果有多种 ...
- F. Gourmet and Banquet(贪心加二分求值)
题目链接:http://codeforces.com/problemset/problem/589/F A gourmet came into the banquet hall, where the ...
- 数据结构与算法学习⑤(BFS和DFS 贪心算法 二分查找)
数据结构与算法学习⑤ 数据结构与算法学习⑤ 1.BFS和DFS 1.1.深度优先搜索算法 1.2.广度优先搜索算法 面试实战 102. 二叉树的层序遍历 104. 二叉树的最大深度 515. 在每个树 ...
- CF1579G - Minimal Coverage(DP,贪心,二分)
文章目录 CF1579G - Minimal Coverage 题目描述 分析 做法1:DP 做法2:贪心(bitset优化+二分 CF1579G - Minimal Coverage 题目描述 给出 ...
- 20行代码AC_ 习题8-1 Bin Packing UVA - 1149(贪心+简单二分解析)
励志用少的代码做高效表达 题意 给定N个物品的中联L1,背包的容量M,同时要求每个背包最多装两个物品,求至少要多少个背包才能装下所有的物品. 解题过程 第一次接触背包类问题. 最初的思路是降序排序,i ...
- 【hihocoder - offer编程练习赛60 A】hohahola(贪心,二分)
题干: 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 有一种叫作hohahola的饮料,售价是X元一瓶.小Hi非常喜欢这种饮料,但是他现在身无分文. 不过小Hi有N张优 ...
最新文章
- MariaDB/MySQL备份和恢复(三):xtrabackup用法和原理详述
- 使用Java让android手机自动执行重复重启
- pythoncsv数据类型_pandas读取CSV文件时查看修改各列的数据类型格式
- Netty简单样例分析[转]
- 2021年中国超轻型直升机市场趋势报告、技术动态创新及2027年市场预测
- 负载均衡 一直跑一个服务器_终于把服务器负载均衡和客户端负载均衡讲清楚了...
- vue父组件变量传递子组件_Vue2.x中的父组件数据传递至子组件
- 外贸软件如何提升出口流程管理效率
- 三菱PLC与触摸屏的连接不通解决方法
- VLAN链路类型和接口类型
- 数据结构和算法-查找算法之黄金分割查找法
- Android屏幕区域划分及尺寸获取
- Java SimpleDateFormat.setLenient(boolean lenient)方法使用
- 二十一世纪大学英语读写教程学习笔记(原文)——7 - I Became Her Target(我成了她的靶子)
- 搭建mysql 主从复制The slave I/O thread stops because master and slave have equal MySQL server UUIDs
- 基于ssm框架实现网上购物管理系统【附项目源码+论文说明】
- 该文件没有与之关联的应用...的解决方法
- .NET Core 3.1部署到Docker后使用Nginx代理
- 一段代码完成所有分享功能,分分钟搞定分享功能
- 一个LED16X16点阵屏
热门文章
- MooFest POJ - 1990
- [LuoguP1352][FJSC]没有上司的舞会
- python collection 和 heapq 模块使用说明
- 【Codeforces Round #442 (Div. 2) C】Slava and tanks
- 微软版UnityVs横空出世,究竟是谁成就了谁?
- 九尾之火---算法生成的动画图像
- 【嵌入式】非操作系统下GPIO口控制器及LED灯编程
- Linux操作Oracle(4)——查看oracle后台进程的方法【windows系统/Linux系统】
- 一个成功的BI项目实施需要注意哪些?
- 数据/方法论固然重要,但人为分析更有价值!