acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 袁老师版题解+注释

    userId_undefined

    DhDyds

    倔强青铜
    22阅读
    4回复
    2点赞
  • ok

    #include<bits/stdc++.h> using namespace std; int main() { int t; cin >> t; while (t--){ long long fei=0; int n; cin>>n; long long ar[n+1] ={0}; for(int i=1;i<=n;i++) { cin>>ar[i] ; ar[i]+=ar[i-1]; } for(int k=1;k<=n;k++){ if(n%k==0){ long long ma=0; long long mi=1e15; for(int j=k;j<=n;j+=k) { ma=max(ma,ar[j]-ar[j-k]); mi=min(mi,ar[j]-ar[j-k]); } fei=max(fei,ma-mi); } } cout<<fei<<endl; } }

    userId_undefined

    八重神子

    秩序白银
    10阅读
    0回复
    1点赞
  • 正经题解|捞薯条

    题目大意 nnn箱薯条,选择nk\frac{n}{k}kn 辆卡车来运输,每辆卡车运输连续的kkk箱薯条,求在所有可行的情况下,卡车最大载重和最小载重的差值。 题目思路 根据题意,每辆卡车必须装满kkk箱,且卡车数是nk\frac{n}{k}kn ,所以卡车数辆必须是nnn的约数。所以枚举每一个iii,代表车辆装载连续的iii箱,然后求出当下情况载重的最大差值。 考虑到要多次计算连续的一段的和,所以可以使用前缀和进行优化,降低计算区间和的时间复杂度。 时间复杂度分析 该算法的时间复杂度主要集中在枚举每个nnn的约数,然后统计序列中每段连续的nnn个数,然后求极差。解决问题函数时间复杂度在有前缀和优化后几乎等于 O(n)O(n)O(n) 。 代码演示

    userId_undefined

    AC君

    管理员
    倔强青铜
    7阅读
    0回复
    0点赞
首页