codeforces B. Large Array and Segments

题目简述:

给定一个长度为n的数组,以及两个整数k和p,该数组可以通过复制在增加长度,可以复制k次,我们最后要找到保证后缀和至少为p的首元结点的数量

思路简述:

找到有多少个完整的原数组n,最后单独除了最后一个不完整的数组n即可;

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+10;
int a[N];
void solve()
{
	int n,k,p,cnt=0;
	cin >> n >> k >> p;
	for(int i=1;i<=n;i++)
	cin >> a[i];
	for(int i=1;i<=n;i++)
	a[i]=a[i-1]+a[i];//预处理前缀和
	int b=a[n]*k-p;//a[n]*k是全部的,p是最低限度,二者相减是符合条件的区间和的最大值
	if(b<0)
	{
		cout << 0 << endl;
		return ;
	}
	int c=b/a[n];
	int d=b-a[n]*c;
	int i;
	for(i=1;i<=n;i++)
	{
		if(a[i]>d)break;
	}
//	cout << a[i]<< ' ' << d << ' ' << a[i-1] << endl;
//	cout << i << endl;
	cout << c*n+i<<endl;
}
signed main()
{
	int q;
	cin >> q;
	while(q--)
	solve();   
}
相关推荐
冲帕Chompa16 分钟前
代码随想录动态规划part02
算法·动态规划
yy_xzz23 分钟前
从0到1使用C++操作MSXML
xml·c++·msxml
Y1nhl35 分钟前
力扣hot100_技巧_python版本
开发语言·python·算法·力扣
风铃儿~36 分钟前
Java微服务流量控制与保护技术全解析:负载均衡、线程隔离与三大限流算法
java·分布式·算法·微服务·负载均衡
martian66544 分钟前
C++算法优化实战:破解性能瓶颈,提升程序效率
开发语言·c++·性能优化
ytz02081 小时前
讲解贪心算法
算法·贪心算法
new一个奶黄包1 小时前
MySql入门
c语言·数据库·c++·mysql·adb
小王努力学编程2 小时前
【Linux网络编程】TCP Echo Server的实现
linux·运维·服务器·网络·c++·学习·tcp/ip
Dovis(誓平步青云)2 小时前
【数据结构】励志大厂版·初阶(复习+刷题):复杂度
c语言·数据结构·经验分享·笔记·学习·算法·推荐算法
Jerry说前后端2 小时前
2025年第十六届蓝桥杯省赛C++ 研究生组真题
c++·算法·蓝桥杯