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();   
}
相关推荐
不会C语言的男孩34 分钟前
C++ Primer Plus 第8章:函数探幽
开发语言·c++
William_wL_38 分钟前
【C++】模板进阶
c++
MC皮蛋侠客8 小时前
Google Test 单元测试指南
c++·单元测试·google test
艾莉丝努力练剑9 小时前
【Linux:文件】Ext系列文件系统进阶
linux·运维·服务器·c++·文件系统·文件io·ext
kkeeper~9 小时前
0基础C语言积跬步之数据在内存中的存储
c语言·数据结构·算法
wabs66610 小时前
关于贪心算法的一些自我总结【力扣45.跳跃游戏II】【灵感来源:代码随想录】
算法·贪心算法·复盘
2401_8769641310 小时前
【湖北专升本】2026湖北专升本真题PDF+备考资料汇总
数据结构·人工智能·经验分享·深度学习·算法·计算机视觉
basketball61610 小时前
C++ NULL 和 nullptr 区别 以及 nullptr 的核心实现
java·开发语言·c++
嗝o゚11 小时前
CANN GE 算子融合——融合算法与调度策略
算法·昇腾·cann·ge
小江的记录本11 小时前
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·安全·面试