codeforces:D1. Chopping Carrots (Easy Version)【最大最小值问题 + 控制一边让另一边尽量靠近 + 思维】
分析
要让a数组除以p数组后
横跨的值最小
我们可以通过遍历最小值,然后让每个值都靠近最小值完成贪心
显然最小值可以取值从[1,a[0]]
然后其他的pi我们可以设置为pi = min(k, ai // vi) vi为当前的最小值
这个的意思就是让pi取到最大,让其尽可能地贴近vi同时不超过k
ac code
import sys
input = sys.stdin.readlinefor _ in range(int(input())):n, k = list(map(int, input().split()))a = list(map(int, input().split()))# greedyif k > a[-1]:print(0)continue# try the minnmincost = 0xffffffffminn = a[0]for i in range(1, minn + 1):p = []# make pi max to greedly get the min costfor aa in a:if i != 0:p.append(min(k, aa // i))else:p.append(k)q = [a[i] // p[i] for i in range(n)]mincost = min(mincost, max(q) - min(q))print(mincost)
总结
最值差问题
思维
可考虑固定一个,让另一个尽可能地靠近
这就是思维的简化
codeforces:D1. Chopping Carrots (Easy Version)【最大最小值问题 + 控制一边让另一边尽量靠近 + 思维】相关推荐
- codeforces 1706.D1 Chopping Carrots (Easy Version)
分析: 对于给定的一组序列a[], 我们可以暴力枚举a[]除以1到K 分别存储在vector<int>ver[maxn], vv 中:假设vv[i]是最小值,二分查找 ver[k]中第一个 ...
- D1. Chopping Carrots (Easy Version)
传送门 题意: 给你一个数组,a_1, a_2, a_3 \cdots, a_n, 长度为n, 和一个整数k, 另一个数组p_1, p_2, p_3, \cdots, p_n, 这两个数组的贡献是 m ...
- 1706D1 - Chopping Carrots (Easy Version)
原题链接: Problem - 1706D1 - Codeforces 题目描述: This is the easy version of the problem. The only differen ...
- D2. Chopping Carrots (Hard Version) (每日一题)
D2. Chopping Carrots (Hard Version) 题意:给定一个长度为n的数组a,要你拟定一个长度为n的数组p,使得下列公式求得的值最小 做法:固定最小值,考虑枚举使得最大值最小 ...
- CodeForces - 1234B1 Social Network (easy version)
CodeForces - 1234B1 Social Network (easy version) 题目: The only difference between easy and hard vers ...
- Codeforces Round #809 (Div. 2)。D2. Chopping Carrots (Hard Version)
翻译: 这是这个问题的难解版本.版本之间的唯一区别是
- CodeForces - 1118F1 Tree Cutting (Easy Version)(树形dp)
题目链接:点击查看 题目大意:给定n个点,每个点的权值分别对应颜色:0:无颜色,1:红色,2:蓝色,现在需要切割边,使切割后的两个部分不能出现红色和蓝色掺杂的部分,也就是说两个部分必须只能各自含有一个 ...
- Codeforces C1. Prefix Flip (Easy Version) (二进制串 / 模拟 / 构造) (Roun #658 Div.2)
传送门 题意: 给出两个长度为n的二进制串a和b,你每次可选取一段前缀子串取反并翻转(即:10010 -> 01101 -> 10110).已知在3 * n次操作内一定能将a变成b.先让你 ...
- CodeForces Round #730 D1. RPD and Rap Sheet (Easy Version)题解
Codeforces Round #730 (Div. 2) 题意: t组数据,每组给一个n和k,(easy version里面k=2) 每一次系统会输入一个初始的密码(初始密码是一个在[0,n−1] ...
- CodeForces - 1543D1 RPD and Rap Sheet (Easy Version)(异或+交互)
题目链接:点击查看 题目大意:交互题猜密码,设原密码为 xxx,猜的密码为 yyy,如果没猜到,密码会自适应变成 zzz,满足 x⊕z=yx \oplus z=yx⊕z=y ,最多猜 nnn 次 题目 ...
最新文章
- 遗传算法中的选择操作
- JS打印指定区域内容
- Java多线程学习笔记之二缓存
- layui 日历选中日期,自动填充
- 复杂存储过程学习_对象存储在无人驾驶高精度地图的场景实践
- 采购申请不固定供应商怎么破?
- Java 启动和停止界面_IntelliJ IDEA 2019.3 发布,启动更快,性能更好(新特性解读)...
- 【HDU - 5500】 Reorder the Books (思维)
- python中文件打开与关闭操作命令
- php中数组下标,PHP数组介绍_php
- python对字符串数组进行排序、依据字符数_Python进行数据的排序以及字符串的操作...
- C语言和设计模式(解释器模式)
- 百度网盘海外版上传下载不限速;一季度北京平均月薪达11187元;苹果 CEO 增加新候选人|极客头条...
- 递归创建多级文件目录(PHP)
- 1537 学生干部虚基类
- 简体中文原型设计工具对比
- 华光职业学院计算机专业,关于给予张庆俊等同学省高校计算机一级 考试成绩优秀奖励的通知...
- pyqt5——splitter
- 制作一个简单的倒计时动画
- sql 数据库显示 正在恢复