第四场模拟。
100+50+0
第一题在没有样例的情况下险些爆零两次。
第二题眼瞎以为是NOIP原题,直接套结论,没多想。
第三题想到了正解并打了出来,死于:
1、细节
2、输出
T1
题目大意:
有n行文本,每行有Li个字母,有四种操作:
1、往上,如果处于第一行或者上一行没有对应字母,那么不做操作。
2、往下,如果处于第n行或者下一行没有对应字母,那么不做操作。
3、往左......
4、往右......
q次询问,每次询问x1,y1,x2,y2,求从(x1,y1)到(x2,y2)的最少操作次数。
n、q、Li<=1e5
题解:
可以发现,往上下跳肯定是固定的|x1-x2|次。
往左右跳与x1行和x2行之间的最小值有关。
弄一个东西维护一下区间最小值就好。
T2
题目大意:
给出n个正整数,a1~an,可以构造出许多单调递增的序列,使得首项为0,接下来的每一项公差为n个正整数中的某一个。
求无论如何都不会出现在任何序列中的最大的数。
1<n<6,a1<1e6,a1*a2<1e18,ai<1e14
题解:
当n=2,就是NOIP2017原题。
观察到,a1很小,我们设f[v]为不用a1组成的数中模a1余数为v的最小值。
显然f[v]-a1是不可能出现的。
spfa即可。
T3
题目大意:
有n个站点,第i个站点有一条通往第i+1的站点的道路,这条道路的火车上有k个座位,有m条订票信息形如(s,t,tp),表示从s到t的tp号座位已经有人订票了。
有q个询问形如(x,y),询问从站点x走到站点y需要换几次座位。
n、q、m、k<=2e5
题解:
考虑贪心,想要换位次数尽量少,那么每次一个座位坐的站点就要尽量远。
我们可以先处理出每个型号的座位对应的可以乘坐的区间。
对于每个车站,我们可以贪心地尽量选择远的终点站。
接下来倍增预处理每个位置可以跳到那些位置即可。