竞赛讨论区 > 【题解】牛客练习赛13
头像
牛客网小运营
编辑于 2018-12-27 14:53
+ 关注

【题解】牛客练习赛13

(题解由比赛出题人提供,点击右侧“本文相关内容”的题目即可开始做题)

T1 幸运数字I
无解的情况非常好判断。 否则答案必然是4或者7。 为什么呢?
因为比4和7还长的子串出现的次数必然不会比4或7出现的次数的较大值还多,而 这样子的子串在字典序上是不占优势的。

T2 幸运数字II
1到1,000,000,000中的幸运数字最多有 29个。
对于每个幸运数字 x,我们都想知道有多少个 i满足next[i]=x;这样的i其实就是前一 个幸运数字y的后一个数y+1到x的那些,再把边界情况考虑进来即可。

T3 幸运数字III
考虑每次操作x的移动情况。
对于某次操作来说,如果xi为奇数,那么下一个 x要满足xi+1>xi,x单调向右;
如果xi为偶数,下一个x要满足xi+1>=xi-1,xi+1不能等于xi因为当前位置已经为 7; xi+1=xi-1当且仅当出现“447”的情况,那么我们会发现我们的操作陷入了循环,否则 xi+1>xi,即x单调向右;
所以问题就变成了从左往右暴力,看看有没有出现循环的情况就可以了。

T4 幸运数字IV
因为k<=1000,000,000,13!>k,所以除了最后13位,其实前面的数字都是固定的, 那么直接算其中有多少个幸运数字就行,对于最后最多 13个位置,我们可以用最多13*13 的复杂度算出每一个位置上的准确数字,此题即解;

T5 乌龟跑步
f[i][j][k][2]表示当前结束了第i个指令,位置为j,翻转k次,方向为0(正)或1(负)是否可以达到。
对于第i个位置,我们无脑枚举当前位置翻转几次,就可以从之前的状态中转移过 来,复杂度O(|c||c|nn)。 而其实每个位置翻转几次是不用枚举的,可以做到O(|c||c|n)。*

T6 m皇后
先只考虑左右方向,那么其实我们只要把所有皇后按r 为第一关键字,c为第二关键 字排序后,扫一遍就知道每个皇后左右受敌的情况。
同理可求竖直方向。
对于对角线的方向,一条对角线是按r+c为第一关键字,r为第二关键字排序; 另一条对角线是按 r-c为第一关键字,r为第二关键字排序。

其他疑问可加以下交流群(加入一个即可啦~)
牛客多校算法训练营1:453799454
牛客全国算法训练营2:330766563
牛客多校算法训练营3:934889305

全部评论

(0) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐