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

前缀和算法-截断数组

 5057. 截断数组 - AcWing题库

给定一个长度为 n 的正整数数组 a1,a2,…,an 和一个正整数 p。

现在,要将该数组从中间截断,得到两个非空子数组。

我们规定,一个数组的价值等于数组内所有元素之和模 p 的结果。

我们希望,将给定数组截断后,得到的两个非空子数组的价值之和尽可能大。

请你输出这两个非空子数组的价值之和的最大可能值。

输入格式

第一行包含两个整数 n 和 p。

第二行包含 n 个整数 a1,a2,…,an。

输出格式

一个整数,表示价值之和的最大可能值。

数据范围

前 33 个测试点满足 2≤n≤10。
所有测试点满足 2≤n≤105,2≤p≤10000,1≤ai≤106。

输入样例1:
4 10
3 4 7 2
输出样例1:
16
输入样例2:
10 12
16 3 24 13 9 8 7 5 12 12
输出样例2:
13

题意是找到一个点x,然后求 1到x 的区间和加上 x+1到n 的区间和最大,所以只需要遍历 x 的位置,就是1到n,然后根据前缀和算法O(1)得到区间和即可

AC ode:

#include<bits/stdc++.h>
using namespace std;
int arr[100010];
long long s[100010];
long long ans = -1;
int p, n;
int main() {cin >> n >> p;for (int i = 1; i <= n; i++) {cin >> arr[i];s[i] = s[i - 1] + arr[i];}for (int i = 1; i <= n - 1; i++) {long long l = s[i] % p;long long r = (s[n] - s[i]) % p;long long x = l + r;ans = max(ans, x);}cout << ans;
}

http://www.lryc.cn/news/301059.html

相关文章:

  • Kubernetes实战:Kubernetes中网络插件calico Daemon Sets显示异常红色
  • 深入探究:JSONCPP库的使用与原理解析
  • 字节UC伯克利新研究 | Magic-Me:简单有效的主题ID可控视频生成框架
  • 2024免费人像摄影后期处理工具Portraiture4.1
  • Spring Boot 笔记 010 创建接口_更新用户头像
  • 认识并使用HttpLoggingInterceptor
  • 内存块与内存池
  • 【FPGA开发】HDMI通信协议解析及FPGA实现
  • [NSSRound#16 Basic]Web
  • [职场] 会计学专业学什么 #其他#知识分享#职场发展
  • docker (五)-docker存储-数据持久化
  • 飞行路线(分层图+dijstra+堆优化)(加上题目选数复习)
  • 云计算基础-快照与克隆
  • 使用 RAG 创建 LLM 应用程序
  • 第13章 网络 Page744~746 asio核心类 ip::tcp::endPoint
  • 面试浏览器框架八股文十问十答第一期
  • 多线程的基本原理学习
  • C/C++进制转换
  • 使用 Coze 搭建 TiDB 助手
  • Arduino程序简单入门
  • QT+OSG/osgEarth编译之八十三:osgdb_ogr+Qt编译(一套代码、一套框架,跨平台编译,版本:OSG-3.6.5插件库osgdb_ogr)
  • 开年炸裂-Sora/Gemini
  • vue前端系统启动报错Module not found: Error: Can‘t resolve ‘sass-loader‘
  • HTML | DOM | 网页前端 | 常见HTML标签总结
  • 乡政府|乡政府管理系统|基于Springboot的乡政府管理系统设计与实现(源码+数据库+文档)
  • 存储系统如何规避数据静默错误SDC?
  • 《Linux 简易速速上手小册》第8章: 安全性与加固(2024 最新版)
  • Ubuntu Desktop 显示文件路径
  • 【Java程序设计】【C00270】基于Springboot的moba类游戏攻略分享平台(有论文)
  • 【旧文更新】【优秀毕设】人脸识别打卡/签到/考勤管理系统(OpenCV+最简基本库开发、可移植树莓派 扩展网络图像推流控制 验证码及Excel邮件发送等功能)