U128722.划分(Easy Ver.)
省选/NOI-
通过率:0%
时间限制:2.00s
内存限制:512MB
题目描述
本题与 CSP-S 2019 Day2 T2 的不同点在于,你不需要使得每一段数据规模严格递增。
你猜猜真实难度是啥?(
给定一个正整数 n 和长度为 n 的数列 a。
你需要找到一些分界点 1≤k1<k2<⋯<kp<n(p≥0),使得以下式子最小:
(i=1∑k1ai)2+(i=k1+1∑k2ai)2+⋯+i=kp+1∑nai2
注意答案可能会超过 264。
输入格式
由于本题的数据范围较大,部分测试点的 ai 将在程序内生成。
第一行两个整数 n,type。n 的意义见题目描述,type 表示输入方式。
- 若 type=0,则该测试点的 ai 直接给出。输入文件接下来:第二行 n 个以空格分隔的整数 ai,表示每组数据的规模。
- 若 type=1,则该测试点的 ai 将特殊生成,生成方式见后文。输入文件接下来:第二行六个以空格分隔的整数 x,y,z,b1,b2,m。接下来 m 行中,第 i(1≤i≤m) 行包含三个以空格分隔的正整数 pi,li,ri。
对于 type=1 的 3∼5 号测试点,ai 的生成方式如下:
给定整数 x,y,z,b1,b2,m,以及 m 个三元组 (pi,li,ri)。
保证 n≥2。若 n>2,则 ∀3≤i≤n,bi=(x×bi−1+y×bi−2+z)mod230。
保证 1≤pi≤n,pm=n。令 p0=0,则 pi 还满足 ∀0≤i<m 有 pi<pi+1。
对于所有 1≤j≤m,若下标值 i(1≤i≤n) 满足 pj−1<i≤pj,则有
ai=(bimod(rj−lj+1))+lj
上述数据生成方式仅是为了减少输入量大小,标准算法不依赖于该生成方式。
输出格式
输出一行一个整数,表示答案。
注意答案可能会超过 264。
输入输出样例
输入#1
5 0 5 1 7 9 9
输出#1
237
说明/提示
【数据范围】
| 测试点编号 | n≤ | ai≤ | type= |
|---|---|---|---|
| 1∼2 | 5×105 | 106 | 0 |
| 3∼5 | 4×107 | 109 | 1 |
所有测试点满足:type∈{0,1},2≤n≤4×107,1≤ai≤109,1≤m≤105,1≤li≤ri≤109,0≤x,y,z,b1,b2<230。
输入解题思路,AI测评打分。不知道怎么写?