分析

要让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)【最大最小值问题 + 控制一边让另一边尽量靠近 + 思维】相关推荐

  1. codeforces 1706.D1 Chopping Carrots (Easy Version)

    分析: 对于给定的一组序列a[], 我们可以暴力枚举a[]除以1到K 分别存储在vector<int>ver[maxn], vv 中:假设vv[i]是最小值,二分查找 ver[k]中第一个 ...

  2. 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 ...

  3. 1706D1 - Chopping Carrots (Easy Version)

    原题链接: Problem - 1706D1 - Codeforces 题目描述: This is the easy version of the problem. The only differen ...

  4. D2. Chopping Carrots (Hard Version) (每日一题)

    D2. Chopping Carrots (Hard Version) 题意:给定一个长度为n的数组a,要你拟定一个长度为n的数组p,使得下列公式求得的值最小 做法:固定最小值,考虑枚举使得最大值最小 ...

  5. CodeForces - 1234B1 Social Network (easy version)

    CodeForces - 1234B1 Social Network (easy version) 题目: The only difference between easy and hard vers ...

  6. Codeforces Round #809 (Div. 2)。D2. Chopping Carrots (Hard Version)

    翻译: 这是这个问题的难解版本.版本之间的唯一区别是

  7. CodeForces - 1118F1 Tree Cutting (Easy Version)(树形dp)

    题目链接:点击查看 题目大意:给定n个点,每个点的权值分别对应颜色:0:无颜色,1:红色,2:蓝色,现在需要切割边,使切割后的两个部分不能出现红色和蓝色掺杂的部分,也就是说两个部分必须只能各自含有一个 ...

  8. Codeforces C1. Prefix Flip (Easy Version) (二进制串 / 模拟 / 构造) (Roun #658 Div.2)

    传送门 题意: 给出两个长度为n的二进制串a和b,你每次可选取一段前缀子串取反并翻转(即:10010 -> 01101 -> 10110).已知在3 * n次操作内一定能将a变成b.先让你 ...

  9. 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] ...

  10. CodeForces - 1543D1 RPD and Rap Sheet (Easy Version)(异或+交互)

    题目链接:点击查看 题目大意:交互题猜密码,设原密码为 xxx,猜的密码为 yyy,如果没猜到,密码会自适应变成 zzz,满足 x⊕z=yx \oplus z=yx⊕z=y ,最多猜 nnn 次 题目 ...

最新文章

  1. 遗传算法中的选择操作
  2. JS打印指定区域内容
  3. Java多线程学习笔记之二缓存
  4. layui 日历选中日期,自动填充
  5. 复杂存储过程学习_对象存储在无人驾驶高精度地图的场景实践
  6. 采购申请不固定供应商怎么破?
  7. Java 启动和停止界面_IntelliJ IDEA 2019.3 发布,启动更快,性能更好(新特性解读)...
  8. 【HDU - 5500】 Reorder the Books (思维)
  9. python中文件打开与关闭操作命令
  10. php中数组下标,PHP数组介绍_php
  11. python对字符串数组进行排序、依据字符数_Python进行数据的排序以及字符串的操作...
  12. C语言和设计模式(解释器模式)
  13. 百度网盘海外版上传下载不限速;一季度北京平均月薪达11187元;苹果 CEO 增加新候选人|极客头条...
  14. 递归创建多级文件目录(PHP)
  15. 1537 学生干部虚基类
  16. 简体中文原型设计工具对比
  17. 华光职业学院计算机专业,关于给予张庆俊等同学省高校计算机一级 考试成绩优秀奖励的通知...
  18. pyqt5——splitter
  19. 制作一个简单的倒计时动画
  20. sql 数据库显示 正在恢复

热门文章

  1. 大学物理-热学-教学总结
  2. ubuntu下qt模拟键盘按键按下_Qt 项目之虚拟键盘
  3. python cox模型_python Cox比例风险假设检验-基于lifelines库
  4. CentOS 7 下安装五笔输入法
  5. 【Linux学习】实现石头剪刀布游戏
  6. 智能dns调研及bind9搭建
  7. java中负数_Java中负数以及类型转换问题
  8. 8237A DMA控制器简答
  9. mysql正则时间格式_用正则表达式校验时间格式的正确性
  10. USB PD快充协议详解(待续)