The Parade

Berland军队正在为一场大型阅兵式做准备。已经决定,参与其中的士兵将被分为k行,所有行都将包含相同数量的士兵。
当然,并不是每一次把士兵排成k排都是合适的。同一排中所有士兵的身高差异不应超过1。每个士兵的身高是一个介于1和n之间的整数。
对于每一个可能的高度,你都知道有这个高度的士兵人数。要进行阅兵,你必须选择参加阅兵的士兵,然后将所有选定的士兵排列成k排,以满足以下两个条件:
1.每排士兵人数相同;
2.没有一排士兵的身高相差2英尺或2英尺以上。

计算可以参加阅兵式的最大士兵人数。

输入
第一行包含一个整数t(1 ≤ t ≤ 10000)——测试用例的数量。然后是测试用例。
每个测试用例以一行开始,该行包含两个整数n和k(1 ≤n ≤ 30000,1 ≤ k ≤ 1e12)——分别是阅兵式中不同高度的士兵数量和士兵排数。
每个测试用例的第二行(也是最后一行)包含n个整数c1,c2。。。,cn(0 ≤ ci≤ 1e12),其中ci是Berland军队中身高为i的士兵人数。
保证所有测试用例的n之和不超过30000。

输出
对于每个测试用例,打印一个整数——可以参加游行的最大士兵人数。

Input
5
3 4
7 1 13
1 1
100
1 3
100
2 1
1000000000000 1000000000000
4 1
10 2 11 1

Output
16
100
99
2000000000000
13

解析:

主要是二分的check函数别写错了

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ios ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
typedef pair<int,int> PII;
const double PI=acos(-1.0);
const int N=2e6+10;
int n,k;
int a[N];
bool check(int x)
{int num=0;int cnt=0;for (int i=1;i<=n;i++){num +=(a[i]+cnt) /x;if (a[i]+cnt<x) cnt=a[i];    //当不够一排的时候就从当前开始,之前的 cnt 人数在下次计算时高度差值就为 2 了,所以得舍.else cnt=(a[i]+cnt) %x;}return num>=k;
}
void solve()
{cin>>n>>k;int sum=0;for (int i=1;i<=n;i++){cin>>a[i];sum +=a[i];}int r=sum/k+10;int l=0;while (l<r){int mid=l+r+1>>1;if (check(mid)) l=mid;else r=mid-1;}cout<<l*k<<endl;
}
signed main()
{ios;int t;cin>>t;while (t--) solve();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/627877.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV-Python(42):摄像机标定

目标 学习摄像机畸变以及摄像机的内部参数和外部参数根据摄像机相关参数对畸变图像进行修复 基础说明 今天的低价单孔摄像机(照相机)会给图像带来很多畸变。畸变主要有两种:径向畸变和切向畸变。如下图所示用红色直线将棋盘的两个边标注出来&#xff0c;但是你会发现棋盘的边…

小程序样例1:简单待办列表

基本功能&#xff1a; 显示所有待办列表&#xff08;点击不同的文本进行显示&#xff09; 没完成的待办 已完成的待办 新建待办test 清除待办foo 代码js文件&#xff1a; //index.js //获取应用实例 const app getApp(); Page({data: {todo: ,todos: [{"id": 1474…

NanoPi NEO Air 配置指南

近期淘了块非常小巧的开发板 NaoPi NEO Air&#xff0c;这块板子仅有 40mm x 40mm 大小&#xff0c;除了一个 MicroUSB OTG 接口外如果想要扩展USB口就得使用左侧排针增加USB接口了。 关于 NanoPi NEO Air NanoPi NEO Air是一款基于全志H3四核A7主控的开源无线创客板&#xff…

SDRAM小项目——命令解析模块

简单介绍&#xff1a; 在FPGA中实现命令解析模块&#xff0c;命令解析模块的用来把pc端传入FPGA中的数据分解为所需要的数据和触发命令&#xff0c;虽然代码不多&#xff0c;但是却十分重要。 SDRAM的整体结构如下&#xff0c;可以看出&#xff0c;命令解析模块cmd_decode负责…

打造舒适的终端环境:我的.tmux.conf配置分享

打造舒适的终端环境&#xff1a;我的.tmux.conf配置分享 大家好&#xff0c;今天我来和大家分享一下我个人的 tmux 配置文件&#xff08;.tmux.conf&#xff09;&#xff0c;通过这份配置文件&#xff0c;你可以在终端中获得更加愉悦的使用体验。废话不多说&#xff0c;让我们…

springcloud-cloud provider-payment8001微服务提供者支付Module模块

文章目录 IDEA新建project工作空间cloud-provider-payment8001微服务提供者支付Module模块建表SQL测试 IDEA新建project工作空间 微服务cloud整体聚合父工程Project 写pom文件 <?xml version"1.0" encoding"UTF-8"?><project xmlns"htt…

一文就知道uniapp等跨端开发的使用场景,学习成本,如何快速使用,基本语法等

文章目录 一、简介二、uniapp用在哪些企业三、学习成本四、本次课程概括五、相关文档和学习资料六、快速使用七、Uni-app的基本语法八、项目实战 一、简介 是一个跨平台开发各种各样应用的一套框架。只需要写一套代码&#xff0c;可以适配多达14种产品类型&#xff0c;比如H5移…

1月16日,每日信息差

​第一、苹果将推出欧盟特供版App Store。由于这些变化&#xff0c;App Store将被一分为二&#xff0c;欧盟国家有一个版本&#xff0c;世界其他地区将是另一个版本。欧盟的新法规《数字市场法案》&#xff08;DMA&#xff09;要求苹果允许开发者在App Store之外发布他们的iOS应…

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-9 可观测性与分离原理

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-9 可观测性与分离原理

Dubbo应用连接Zookeeper问题与解决方案

最近&#xff0c;遇到了一个关于Dubbo应用启动的问题&#xff0c;在部署应用的过程中&#xff0c;应用无法成功连接到ZooKeeper进行服务注册。尽管telnet端口显示正常&#xff0c;排除了网络问题&#xff0c;但问题仍然存在。 首先&#xff0c;查看日志获取线索分析问题。日志…

vue知识-07

ref # 放在组件上&#xff1a; this.$refs.名字 ---组件对象.组件对象.属性 # 在vue项目中使用: // 写在组件上 <HelloWorld ref"my_hello_world"></HelloWorld>handleClick() {console.log(this.$refs)this.$refs.my_hello_world.name # 获取子组件中…

vue:使用【3.0】:条件模块

一、条件层级效果图 二、代码 <template><ContentWrap><!-- 添加条件分支:level1 --><div class"btnBox" v-if"isEdit"><el-button type"primary" click"add">添加条件分支</el-button></div…

UE5 RPG AttributeSet的设置

AttributeSet 负责定义和持有属性并且管理属性的变化。开发者可以子类化UAttributeSet。在OwnerActor的构造方法中创建的AttributeSet将会自动注册到ASC。这一步必须在C中完成。 Attributes 是由 FGameplayAttributeData定义的浮点值。 Attributes能够表达从角色的生命值到角色…

《现代C++语言核心特性解析》笔记草稿

仅供学习记录之用&#xff0c;谢绝转发 第1章 新基础类型&#xff08;C11&#xff5e;C20&#xff09; 1.1 整数类型long long 更多笔记 “在C中应该尽量少使用宏&#xff0c;用模板取而代之是明智的选择。C标准中对标准库头文件做了扩展&#xff0c;特化了long long和unsi…

【C++】vector的使用及模拟实现

目录 一、vector的介绍及使用1.1 介绍vector1.2 vector的使用1.2.1 构造1.2.2 遍历访问1.2.3 容量空间1.2.4 增删查改 二、vector的模拟实现2.1 成员变量2.2 迭代器相关函数2.3 构造-析构-赋值重载2.3.1 无参构造2.3.2 有参构造12.3.3 有参构造22.3.4 拷贝构造2.3.5 赋值重载2.…

RAG基础功能优化、以及RAG架构优化

RAG基础功能优化 对RAG的基础功能优化&#xff0c;我们要从RAG的流程入手[1]&#xff0c;可以在每个阶段做相应的场景优化。 从RAG的工作流程看&#xff0c;能优化的模块有&#xff1a;文档块切分、文本嵌入模型、提示工程优化、大模型迭代。下面针对每个模块分别做说明&#…

【IAP】FREERTOS堆大小影响到FLASH写入

最近在调LPC177X芯片IAP升级时发现&#xff0c;同一套代码&#xff0c;稍微加了点东西就导致写入失败&#xff0c;确认写入flash接口无误后 #define SRC_ADDR_NOT_MAPPED 4通过写入失败返回值&#xff0c;上网查阅资料 我在这里勾选了IRAM2区&#xff0c;也就是默认是可以使用…

兴达易控EtherCAT转Profibus网关让工业自动化变得轻松快捷

EtherCAT转Profibus网关&#xff08;XD-ECPBM20&#xff09;是一种用于实现不同通信协议间互联互通的设备。它主要用于工业控制系统中&#xff0c;能够将EtherCAT总线的数据传输转换为Profibus网络可接受的格式。这样的网关设备在工业自动化领域有着广泛的应用&#xff0c;因为…

【计算机网络】第七,八,九章摘要重点

第七章网络管理 1.计算机网络面临的两大威胁&#xff1f; 恶意程序有&#xff1a;计算机病毒&#xff0c;计算机蠕虫&#xff0c;特洛伊木马&#xff0c;逻辑炸弹&#xff0c;后门入侵和流氓软件。 2.安全的计算机网络四个目标&#xff1a; 机密性&#xff0c;端点鉴别&…

一文解析 Copycat Dex与 Bitcat Dex的区别

Copycat Dex和 Bitcat Dex都带一个 Cat 并且都是衍生品协议&#xff0c;很多人都会误认为这两个是同一个项目&#xff0c;实际不然。它们是面向两个不同赛道、不同资产类型的衍生品项目。 Copycat Dex和 Bitcat Dex都是衍生品 DEX&#xff0c;它们最本质的区别主要在于&#xf…