2020.09.05【NOIP提高组&普及组】模拟赛C组1总结
T1:机器翻译
这一道题是一个很简单的队列题目,我们只要每次维护队列元素数量保持在m以内即可
T2:乌龟棋
这一道题我一开始比赛是暴力枚举(万事先暴力),很明显这个肯定会超时(30分)那么考虑动态规划,我们设表示1步卡用了a次2步卡用了b次3步卡用了c次……我们的位置也是可以算出来的(1*a+2*b+c*3+d*4+1)那么很简单的转移
if(i) f[i][j][k][l]=max(f[i][j][k][l],f[i-1][j][k][l]+a[pos]); if(j) f[i][j][k][l]=max(f[i][j][k][l],f[i][j-1][k][l]+a[pos]); if(k) f[i][j][k][l]=max(f[i][j][k][l],f[i][j][k-1][l]+a[pos]); if(l) f[i][j][k][l]=max(f[i][j][k][l],f[i][j][k][l-1]+a[pos]);
T3:关押罪犯
比赛的时候没有想到,但是听了各位奆佬们讲了之后觉得非常简单
二分+并查集
可以发现,最终答案一定是一个那么我们就对它从小到大排序进行二分,可以发现二分出来的mid,
怎么发生冲突都可以, 不会影响我们当前选择的mid,但是
会发生冲突那么mid就是不合法的了,我们把有冲突的都连一条边,然后只要用并查集维护mid以上大的是一个二分图即可(就是冲突的都不在一个监狱里)Easy.
T4:引水入城
这道题其实也挺水的,首先我们可以发现,来自点[1,x]的最终流向的水一定是连续的,这个对我们以后判定无用的蓄水站有重大意义。
证明如下(反证法):
图(1)假设来自一个点的水流重点不是连续的 如图(1),那么这两条经过的路构成的线一定会相如图(2)
图(2)那么很显然[1,y]就是没有意义的,因为[1,y]到达的点也能通过[1,x]到达,如图(3)
图(3)假设错误,故原观点正确。
那么我们只需要预处理所有的能到达的点,然后用标记扫一次

浙公网安备 33010602011771号