袁老师版题解+注释
2024-01-06 16:12:19
发布于:广东
21阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin >> t;
while(t--)
{
int n;
cin >> n;
long long ar[n+1] = {0}; //数组长度为n+1,0号位的值是0
for(int i=1; i<=n; i++) // i从1开始
{
//输入每一箱的重量
cin >> ar[i];
//将累计的和写进每一项去
ar[i] += ar[i-1]; //算出累加和
}
long long fei=0;
for(int i=1; i<=n/2; i++) // i代表尝试的车辆数
{
if(n % i == 0) //能整除的车数都试一下
{
long long ma = 0;
long long mi = 1e18 + 1;
//假设i=4台车
for(int j=i; j<=n; j+=i) //步长为i的for循环
{
//ar[j]号位的累计和 减去 ar[j-i]号位的累计和
ma = max(ma, ar[j] - ar[j-i]);
mi = min(mi, ar[j] - ar[j-i]);
}
fei = max(ma - mi, fei); //取每一次ma-mi的最大值出来
}
}
cout << fei << endl;
}
return 0;
}
全部评论 3
!!!非常好!!!
2024-01-06 来自 广东
1haohenga!
2024-01-07 来自 广东
0你这一个有点问题,请改正
2024-01-07 来自 广东
0哪呀
2024-01-07 来自 广东
1
有帮助,赞一个