【题解】Wannafly挑战赛4

T1 解方程

枚举a 和b,那么 c 唯一确定,用数组或者map 判断一下这样子的c 是否存在。

T2 小AA的数列

按位(二进制的位)考虑每位对于答案的贡献。令表示前个元素里 第位为的数字个数的奇偶性。考虑数列中第个元素为区间右端点,对于 第位,我们只要求出中有多少个元素与不相等且 区间长度为偶数就可以了,而这可以用一个前缀和搞定。

ans

其中第一维表示考虑第位,第二维表示考虑的前缀和的位置,第三维表 示前缀里第bit位为1的数字个数的奇偶数,第四维用来满足长度为偶数的要求。

T3 割草机

首先把最后的那些全是空地的行去掉(因为割草机去这些行是完全没有意义 的)。

问题其实等同于割草机在什么位置选择进入下一行。令表示第行最右的杂草的位置,表示第行最左的杂草的位置。 简单来说,如果当前行i 为奇数行,那么我们会选取 的位置,偶数行选取 的位置。 没有杂草的行特别处理一下。模拟一下就可以了。

T4 树的距离

首先求出个点的dfs 序,一棵子树对应了dfs 序中的连续一段。我们把所有点按它到根的距离dist 排序。 然后把每组询问排序。

T5 方程的解

如果,那么就把分别带进去试一试就好。 如果 ,那么是奇质数,就可以把方程化成 的形式,其中。(注意 在模意义下是乘以 的逆元)这样的话就变成了检验在模意义下是否有二次剩余。 首先特判掉 的情况,这个是显然有唯一解的。之后如果有二次剩余,那么一定可以把 写成 的形式,其中的一个原根,这样的话肯定满足:。相反,如果没有二次剩余,设,那么必然是奇数, 所以也不会是的倍数, 也不等于,而会等于 。综上,我们就只需要看是否等于 就可以判断 是否有二次剩余了。若 有二次剩余,即,则原方程有解,否则就无解。

全部评论

相关推荐

感觉今年拿到大厂实习offer的人很多,光是身边同学室友都是好几个offer。由此可见,秋招得有多卷
小浪_Coding:必须卷的起飞, 应该比25更卷一点, 25已经是哀声一片了, 26会更难一点, 现在还有`很多25未找到的
点赞 评论 收藏
分享
迟缓的斜杠青年巴比Q了:简历被投过的公司卖出去了,我前两天遇到过更离谱的,打电话来问我有没有意向报班学Java学习,服了,还拿我学校一个学长在他们那报班学了之后干了华为OD当招牌
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务