CF1899B 250 Thousand Tons of TNT

题目链接

题目

在这里插入图片描述在这里插入图片描述

题目大意

T T T 组测试数据
每组 n n n 个货物,第 i i i 个货物 的重量是 a i a_i ai
用k辆货车按顺序装这些货物,条件是每辆车上的货物个数都一样,也即是说 n n n 必须能被 k k k 整除,
求任意两辆车货物总重量的最大的差值。

思路

这题直接是暴力枚举,细节见代码

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e6 + 10;
int a[N], sum[N], back[N];
bool isPrime(int n) {if (n == 1) return false;if (n == 2 || n == 3 || n == 5 || n == 7) return true;//只需判断一个数能否被小于sqrt(n)的奇数整除for (int i = 2; i <= sqrt(n); i ++) {if(n % i == 0) {return false;}}return true;
}
signed main()
{int T; cin >> T;while (T -- ){int n;scanf("%lld", &n);for (int i = 0; i <= n; i ++ ) sum[i] = 0;for (int i = 1; i <= n; i ++ ){scanf("%lld", &a[i]);back[i] = a[i];sum[i] = sum[i - 1] + a[i];}//		只有一个数时输出0 if (n == 1){cout << 0 << endl;continue;}
//		for (int i = 1; i <= n; i ++ )
//		{
//			cout << sum[i] << " ";
//		}
//		cout << endl;sort(back + 1, back + 1 + n);//		如果每个数都一样,直接输出0 int ma = back[n] - back[1];if (ma == 0){printf("%lld\n", ma);continue;}//		开始枚举每一个 for (int  i = 2; i <= n / 2; i ++ ){if (n % i == 0){int m1 = 0, m2 = 99999999999999999;int l = 0, r = i; //双指针进行枚举//				一共装n/i辆货车 for (int j = 1; j <= n / i; j ++ ){
//					算出这辆货车的货物重量 int x = sum[r] - sum[l];//					求最大的重量和最小的重量 m1 = max(x, m1);m2 = min(x, m2); //					找下一辆车 l += i;r += i;}
//				找最大的差值 ma = max(ma, abs(m1 - m2));//				算一遍i辆货车时的情况 m1 = 0, m2 = 99999999999999999;l = 0, r = n / i;for (int j = 1; j <= i; j ++ ){int x = sum[r] - sum[l];m1 = max(x, m1);m2 = min(x, m2);l += (n / i);r += (n / i);}ma = max(ma, abs(m1 - m2));}}printf("%lld\n", ma);}return 0;} 

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

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

相关文章

一起学docker系列之五docker的常用命令--操作容器的命令

目录 前言1 启动容器2 查看容器3 退出容器4 启动已经停止的容器5 重启容器6 停止容器7 删除已经停止的容器8 启动容器说明和举例9 查看容器日志10 查看容器内运行的进程11 查看容器内部细节12 进入正在运行的容器并进行交互13 导入和导出容器结语 前言 当涉及到容器化技术&…

如何在远程协同视频会议中确保安全性?

随着远程工作的普及&#xff0c;远程协同视频会议已成为企业和团队之间进行交流和协作的重要工具。与此同时&#xff0c;会议中的安全性问题也日益凸显。本文将介绍如何在远程协同视频会议中确保安全性&#xff0c;主要包括以下方面&#xff1a; 1、内网部署 将会议服务器部署…

python引入自己不同目录的模块

1.目录结构 from manual_data.utils import delete_and_insert_center

【Proteus仿真】【STM32单片机】公交车报站系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器&#xff0c;使用LCD12864显示模块、DS18B20温度传感器、DS1302时钟模块、按键、LED蜂鸣器、ULN2003、28BYJ48步进电机模块等。 主要功能&#xff1a; 系统运行…

学习css过渡动画-transition

文章目录 前言transition属性语法宽度改变效果透明度改变效果位置改变效果如有启发&#xff0c;可点赞收藏哟~ 前言 通常&#xff0c;当一个元素的样式属性值发生变化时&#xff0c;会立即看到页面发生变化。 css属性transition能让页面元素不是立即的、而是慢慢的从一种状态变…

Python | 机器学习之SVM支持向量机

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《人工智能奇遇记》&#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 目录结构 1. 机器学习之SVM支持向量机概念 1.1 机器学习 1.2 SVM支持向量机 2. SVM支持向量机…

2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-B卷

2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-B卷 2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-B卷A模块基础设施设置/安全加固&#xff08;200分&#xff09;A-1&#xff1a;登录安全加固&#xff08;Windows, Linux&#xff09;A-2&#…

Go 语言数组基础教程 - 数组的声明、初始化和使用方法

数组用于在单个变量中存储相同类型的多个值&#xff0c;而不是为每个值声明单独的变量。 声明数组 在Go中&#xff0c;有两种声明数组的方式&#xff1a; 使用var关键字&#xff1a; 语法 var array_name [length]datatype{values} // 这里定义了长度 或者 var array_n…

Python入门学习篇(一)——注释变量输入输出

1 注释 1.1 作用 a 方便他人和自己阅读代码 b 告诉编译器这部分内容是不用执行的。1.2 单行注释 # 注释内容1.3 多行注释(引号) 1.3.1 三对双引号 """ 注释内容 """1.3.2 三对单引号 注释内容 1.4 pycharm快捷键使用 ctrl/ 多行注释(以# …

PPT基础入门

目录 相关设置快捷键shift 快捷键Ctrl 快捷键Ctrl Shift 组合快捷键快捷键总结 相关设置 设置撤回次数 自动保存 图片压缩 字体嵌入&#xff1a;目的是在不同的电脑上保留已经设置好的字体 多格式导出 &#xff08;1&#xff09;可以导出PDF &#xff08;2&#xff09;可以导…

Java的JDBC编程—连接Mysql数据库

目录 一、 Java的数据库编程&#xff1a;JDBC 二、JDBC工作原理 三、 JDBC使用 四、JDBC使用步骤总结 五. JDBC常用接口和类 5.1 JDBC API 5.2 数据库连接Connection 5.3 Statement对象 5.4 ResultSet对象 一、 Java的数据库编程&#xff1a;JDBC JDBC&#xff0c;即J…

linux环境下软件安装之Mysql8

1、官网下载(右键最后一页的超链接) 2、通过命令行下载 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.35-linux-glibc2.17-x86_64.tar.xz3、解压 1.将.xz解压为.tar xz -d mysql-8.0.35-linux-glibc2.17-x86_64.tar.xz2.将.tar解压为普通文件 tar -xv…