一些比赛的题解

A

把第二个字符串反转,然后对于第一个字符串中为 # 的位置,输出第二个字符串中对应位置的字符即可。

B

考虑枚举答案(需要注意不能二分),假设当前枚举的答案为 res,只需考虑怎么判定该答案是否合法。不难发现,找到 res不同的两个倍数同时属于这个区间,res 就是合法的。

C

直接暴力模拟除的过程。每次该位的答案为 a×kb,同时做一个 aa×kmodb 的操作即可。

D

不难发现有交集的区间只有两种情况。一种是 a 包含 b,另外一种是 ab 相交。只需枚举所有区间对,找出交集最大值即可。

E

对于每个位置 i 二分一个 p,使得 j=ip1lj=m,若不存在这样的 p,则令 p=1。我们记 nei=p

从每个未被访问过的位置出发,一直做 inei 的操作(直到越界),记录做了几次,然后取最大值即可。

F

先找出第 i 个数二进制下最低的 1,设他的位置为 pi。不难发现若取走一个第 i 堆的石子,会导致该数二进制下第 0pi 位全部取反。

所以我们先记录一开始的异或值 s,然后从高到低遍历每个二进制位,如果发现 s 的第 j 位不是 0,则找到一个 pi=j 的数取走一个石子(找不到则无解),最后记录做了多少次操作即可。

posted @   zxh923  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示