HBC240155重修费序列操作题解

云中君 算法基础篇 58 0
想要成为编程高手?那就来试试全网最全C++题库,让您在练习中快速成长。
你有一个长度为 nnn 的序列 A:a1,a2,a3,,anA:a_1,a_2,a_3,cdots ,a_nA:a1,a2,a3,,an ,和两个整数 x,px, px,p,特别的,ppp 是质数,在一次操作中,你可以选择两个整数 l,r:l,r:l,r: ala_lal 变为 %p % p%p 或 al%pa_l % pal%p al+1a_{l + 1}al+1 变为 %p % p%p 或 al+1%pa_{l + 1} % pal+1%p cdots ara_rar 变为 %p % p%p 或 ar%pa_r % par%p 再给你一个序列 B:b1,b2,b3,,bnB:b_1,b_2,b_3,cdots ,b_nB:b1,b2,b3,,bn,现在想让你找到一个非负整数 xxx,使得这个 xxx 在最小操作次数下,序列 AAA 能变成序列 BBB ,如果有多个 xxx,输出最小的。

你有一个长度为 nnn 的序列 A:a1,a2,a3,⋯ ,anA:a_1,a_2,a_3,cdots ,a_nA:a1​,a2​,a3​,⋯,an​ ,和两个整数 x,px, px,p,特别的,ppp 是质数。在一次操作中,你可以选择两个整数 l,r(1≤l≤r≤n):l,r(1 leq l leq r leq n):l,r(1≤l≤r≤n):  ala_lal​ 变为 (al+x)%p(a_l + x) % p(al​+x)%p 或 al%pa_l % pal​%p al+1a_{l + 1}al+1​ 变为 (al+1+x)%p(a_{l + 1} + x) % p(al+1​+x)%p 或 al+1%pa_{l + 1} % pal+1​%p ⋯cdots⋯ ara_rar​ 变为 (ar+x)%p(a_r + x) % p(ar​+x)%p 或 ar%pa_r % par​%p 再给你一个序列 B:b1,b2,b3,⋯ ,bn(0≤bi≤p−1)B:b_1,b_2,b_3,cdots ,b_n(0 leq b_i leq p - 1)B:b1​,b2​,b3​,⋯,bn​(0≤bi​≤p−1),现在想让你找到一个非负整数 xxx,使得这个 xxx 在最小操作次数下,序列 AAA 能变成序列 BBB 。如果有多个 xxx,输出最小的。

HBC240155重修费序列操作题解
-第1张图片-东莞河马信息技术
(图片来源网络,侵删)

标签: HBC240155重修费序列操作题解