牛客小白月赛42 题解
A. 冰狱寒岚
Solution
我们可以看出数字的分布周期是2048,所以可以先对所查询的数字取模,随后如果大于1023,就让他从-1024开始。
Code
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=50004937
B. 光之屏障
Solution
直接从1开始模拟2的幂次,看是否有符合条件的即可。
Code
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=50004958
C. 寒潭烟光
Solution
对于式子 我们知道 需要计算 次 那么新加入进来的 需要计算 次,后面的数字计算次数不变,故他们的总和为 所以总的答案是 。
Code
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=50004961
D. 金蛇狂舞
Solution
简单 ,注意判断阶乘大于20就会爆long long,实际上用不到这么大的数字,需要特判一下。
Code
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=50005010
E. 暗灭侵蚀
Solution
显然对于这三个元素每次都是用最左的棋子以最右棋子为中心往右跳,这个递增速率类似于斐波那契,跳到只需要经历40次左右,所以可以暴力模拟跳的过程。
Code
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=50004967
F. 火凤燎原
Solution
换根dp,我们观察得到,对于一个点 ,如果它的度数大于等于3,那么对于每个跟他相连的节点 ,如果 的子树大小为 ,那么贡献就是 。但是我们发现对于父亲节点并不适用,因为父亲节点包含了及其子树,所以我们考虑用换根dp的方式,先求出以1为根的子树信息,在查询的时候,令子节点为根,那么父亲节点的子树大小就变成 , 的子树大小就变成了 。
Code
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=50004991
一些比赛的题解