#P4105. [HEOI2014] 南园满地堆轻絮

    ID: 3058 Type: RemoteJudge 5000ms 500MiB Tried: 0 Accepted: 0 Difficulty: 3 Uploaded By: Tags>模拟贪心2014二分各省省选河北

[HEOI2014] 南园满地堆轻絮

题目描述

小 Z 是 ZRP(Zombies’ Republic of Poetry,僵尸诗歌共和国)的一名诗歌爱好者,最近他研究起了诗词音律的问题。

在过去,诗词是需要编成曲子唱出来的,比如下面这首《菩萨蛮》,唱出来的话其对应的音符就是这样的:

 南  园  满 地 堆 轻 絮, 愁 闻 一 霎 清 明 雨   
 1   1  5 5 6 6 5  4 4 3 3 2 2 1  

因而可以发现,1 1 5 5 6 6 5 4 4 3 3 2 2 1 这串音符就成为了研究音律的关键。

小 Z 翻阅了众多史料发现,过去的一首曲子的音调是不下降的。小 Z 想要知道对于一首给定的曲子,如何通过提高音调或者降低音调,将它的音调修改的不下降,而且使得修改幅度最大的那个音符的修改幅度尽量小。即如果把一个包含 nn 个音符的曲子看做是一个正整数数列 A1AnA_1 \cdots A_n,那么目标是求另一个正整数数列 B1BnB_1 \cdots B_n,使得对于任意的 1i<n1 \leq i<nBiBi+1B_i \leq B_{i+1},而且使得 $\texttt{Ans} = \max\{\lvert A_j-B_j\rvert,1\leq j\leq n\}$ 尽量小。

小 Z 很快就想清楚了做法,但是鉴于他还忙着写诗,所以这个任务就交给了你。

输入格式

由于数据规模可能较大,因此采用如下方式生成数据。

每个数据包含 77 个数:n,Sa,Sb,Sc,Sd,A1,Modn,S_a,S_b,S_c,S_d,A_1,\texttt{Mod},即共有 nn 个音符,第一个音符为 A1A_1

生成规则如下:定义生成函数 $F(x) = S_a\times x^3 + S_b\times x^2 + S_c\times x + S_d$;那么给出递推公式 Ai=(F(Ai1)+F(Ai2))modModA_i =( F(A_{i-1}) + F(A_{i-2}) )\bmod \texttt{Mod},此处规定 A0=0A_0 = 0。由于中间过程的数可能会特别大,所以要求每一步与 AA 中的每个数都对一个给定的数 Mod\texttt{Mod} 取模。

输出格式

输出一行,包含一个正整数 Ans\texttt{Ans}

3 815 6901 3839 178 199 10007 
1334

提示

【数据范围】

对于 10%10\% 的数据,n3n\leq3

对于 20%20\% 的数据,n10n\leq10

对于 30%30\% 的数据,n102n\leq10^2

对于 50%50\% 的数据,n103n\leq10^3

对于 70%70\% 的数据,n105n\leq10^5

对于 100%100\% 的数据,2<n5×1062<n\leq 5 \times 10^6Sa,Sb,Sc,Sd,A1min{104,Mod}S_a,S_b,S_c,S_d,A_1 \leq \min\{10^4,\texttt{Mod}\}1<Mod109+71 < \texttt{Mod}\leq 10^9+7,所有输入的数都是正整数。

【友情提示】

样例中生成的数列为:199,4568,1901199,4568,1901,此时将 45684568 修改为 3234323419011901 也修改为 32343234 即可,代价为 13341334