当前位置: 首页 > wzjs >正文

一学一做专题网站百度app安装

一学一做专题网站,百度app安装,转运网站建设,赚钱软件学生P12167 [蓝桥杯 2025 省 C/Python A] 倒水 题目描述 小蓝有 n n n 个装了水的瓶子,从左到右摆放,第 i i i 个瓶子里装有 a i a_i ai​ 单位的水。为了美观,小蓝将水循环染成了 k k k 种颜色,也就是说,第 i i i …

P12167 [蓝桥杯 2025 省 C/Python A] 倒水

题目描述

小蓝有 n n n 个装了水的瓶子,从左到右摆放,第 i i i 个瓶子里装有 a i a_i ai 单位的水。为了美观,小蓝将水循环染成了 k k k 种颜色,也就是说,第 i i i 个瓶子和第 i + k i + k i+k 个瓶子里的水的颜色相同。

小蓝发现有的瓶子里的水太少了,因此他规定如果第 i i i 个瓶子和第 j j j 个瓶子中的水颜色相同并且满足 i < j i < j i<j,即可将任意整数单位的水从第 i i i 个水瓶倒出,倒入第 j j j 个水瓶中。小蓝想知道任意次操作后所有瓶子中的水的最小值 min ⁡ { a i } \min\{a_i\} min{ai} 最大可以是多少?

输入格式

输入的第一行包含两个正整数 n , k n, k n,k,用一个空格分隔。

第二行包含 n n n 个正整数 a 1 , a 2 , ⋯ , a n a_1, a_2, \cdots, a_n a1,a2,,an,相邻整数之间使用一个空格分隔。

输出格式

输出一行包含一个整数表示答案。

输入输出样例 #1
输入 #1
7 3
8 5 5 2 2 3 4
输出 #1
3
说明/提示
样例说明

其中一种方案:

  • a 1 a_1 a1 a 4 a_4 a4 倒入 3 3 3 单位;
  • a 2 a_2 a2 a 5 a_5 a5 倒入 2 2 2 单位;
  • a 3 a_3 a3 a 6 a_6 a6 倒入 1 1 1 单位;
    最终每个瓶子里的水: 5 , 3 , 4 , 5 , 4 , 4 , 4 5, 3, 4, 5, 4, 4, 4 5,3,4,5,4,4,4,最小值为 3 3 3
评测用例规模与约定
  • 对于 40 % 40\% 40% 的评测用例, 1 ≤ n , a i ≤ 100 1 \leq n, a_i \leq 100 1n,ai100
  • 对于所有评测用例, 1 ≤ n , a i ≤ 100000 1 \leq n, a_i \leq 100000 1n,ai100000 1 ≤ k ≤ n 1 \leq k \leq n 1kn

P12167 [蓝桥杯 2025 省 C/Python A] 倒水

【思路分析】

求最小值最大,一般考虑二分。而这个题可以按照不同颜色进行分组,判断能否将所有分组的最小值达到某数x,而x通过二分进行查找

import java.util.*;
import java.io.*;
public class Main {static int[] a = new int[100005];static int n, k;// 检查是否可以使每个颜色组的瓶子水量最小值达到 xstatic boolean check(int x) {// 遍历每个颜色组for (int i = 1; i <= k; i++) {// j 用于遍历当前颜色组内的瓶子int j = i;// d 用于记录当前颜色组内水量的盈余情况long d = 0;// 遍历当前颜色组内的所有瓶子while (j <= n) {// 如果当前瓶子的水量大于等于 xif (a[j] >= x) {// 计算当前瓶子的水量盈余,并累加到 d 中d += a[j] - x;} else {// 如果当前瓶子的水量小于 x,计算需要补充的水量,并从 d 中扣除d -= (x - a[j]);}// 如果盈余水量小于 0,说明无法使当前颜色组内所有瓶子的水量都达到 xif (d < 0) {return false;}// 移动到下一个同颜色组的瓶子j += k;}}// 如果所有颜色组都能满足条件,则返回 truereturn true;}public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String[] row1 = br.readLine().split(" ");n = Integer.parseInt(row1[0]);k = Integer.parseInt(row1[1]);String[] data = br.readLine().split(" ");for (int i = 1; i <= n; i++) {a[i] = Integer.parseInt(data[i - 1]);}int l = 1;int r = 100000;while (l <= r) {int mid = (l + r) >> 1;if (check(mid)) {l = mid + 1;} else {r = mid - 1;}}System.out.println(l - 1);br.close();}
}    
http://www.dtcms.com/wzjs/335997.html

相关文章:

  • 网站建设 服务器 预算报价清单百度网盘pc网页版入口
  • 济南新站seo外包百度网站首页
  • 开发网站大概要多少钱近三天新闻50字左右
  • py可以做网站吗网站制作软件免费下载
  • 国外网站模板欣赏win10最强性能优化设置
  • 传奇游戏电脑版seo网络营销推广公司深圳
  • 沈阳科技网站建设网络营销推广活动
  • 高端网站设计有哪些如何做好网络销售技巧
  • 网站宣传推广平台今日小说排行榜百度搜索风云榜
  • 杭州网站建设费用多少目录型搜索引擎有哪些
  • 其他公司做的网站系统没授权能用吗友情链接多少钱一个
  • 怎么用织梦来做网站后台电子商务说白了就是干什么的
  • 微网站设计平台付费恶意点击软件
  • 网页编程语言有哪几种湖南专业seo公司
  • 做网站需要懂代码么上海关键词优化排名软件
  • 网站建设 定制最新推广注册app拿佣金
  • 成都疫情最新情况行动轨迹站长工具seo综合查询怎么用
  • 中文网站模板 免费腾讯企点官网下载
  • 邢台网站建设免费做网站排名引流推广犯法吗
  • 汕头网站优化电话代写文章
  • 比较有设计感的网站网站免费软件
  • 我做网站了十大seo公司
  • 附近找室内装修公司seo程序
  • 网站开发技术服务费合同网络推广员是干嘛的
  • 可以自己做网站吗青岛网站建设推广公司
  • 北京做网站建设的公司哪家好谷歌商店下载官网
  • 贵阳做网站的大公司有哪些营销软件代理推广
  • oss做网站seo外链工具源码
  • 360网站 备案百家号seo
  • 网站建设公司不挣钱的原因数据分析师一般一个月多少钱