NOIP2018模拟9.11

第四场模拟。

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

题解:

考虑贪心,想要换位次数尽量少,那么每次一个座位坐的站点就要尽量远。

我们可以先处理出每个型号的座位对应的可以乘坐的区间。

对于每个车站,我们可以贪心地尽量选择远的终点站。

接下来倍增预处理每个位置可以跳到那些位置即可。

猜你喜欢

转载自www.cnblogs.com/lmlysklt/p/9636598.html
今日推荐