HDU20260723F 合成大 HDU
HDU20260723F 合成大 HDU
WZHHDU20260723F 合成大 HDU
waw ,这是被出题人认为最难的一档题,我们居然做出来了。
题目描述:
构造仅包含
h,d和u的字符串 ,满足 且 里恰包含 个hdu子序列。
神奇的写题历程。
这题是我和 WaterM 一起解决的。
一下是无聊的对话(回忆的,不保证百分百一样):
……
WaterM :你们对 F 有什么想法?
wzh :根据 n 大小分类讨论。
WaterM :详细点?
wzh :大概就是如果 时固定一个右边的
u,剩下全用hd,变为hd子序列计数。 大的时候就多搞点 ,然后再调整。WaterM :想想……
wzh :大概就把 按照 拆分。
WaterM :不对,达不到 1e9 。
wzh :那就在末尾补一些
hhh...ddd...uuu...。WaterM :想想……
WaterM :细节?
wzh :估计就在开头补一些,然后后边按 拆分。
WaterM :覆盖不到的怎么办?
wzh :举例子。
WaterM :就比如说 被补
hhh..dd..uu..后很小。WaterM :主要会前后影响,难做。
wzh :想想……
WaterM :我现在会 1e9-eps 和 的倍数,看看能不能推广。
……
wzh :我好像有一点思路。
WaterM :[一个表情] 。
wzh :就是固定左边 个
h,中间 个d,右边 个u。wzh :然后每把一个
u那一坨的d往左和右会失去或获得 个子序列。wzh :把每一个
h那一坨的d往左右会失去或获得 个子序列。WaterM :然后干啥。
WaterM : exgcd ?
wzh :对。
WaterM :这么牛。
wzh :不过还有 1e9-eps 。
WaterM :还有 0+eps 。
WaterM : 0 到 1998 是吧。
WaterM :恰巧我会做 [1e9-1e3,1e9] 。
wzh :等等。
wzh :为什么我不用 1000+1000+1001 ?
wzh :这样就没有 1e9-eps 了。
WaterM :这样中间有些地方不行。
wzh :哪些?
WaterM :比如 。
WaterM :这些都是小事情。
WaterM :有没有证明
d的移动不超过 。WaterM :不然 exgcd 搞出几十和几千。
WaterM :不就不行了。
A few minutes later.
WaterM :那是不是可以枚举 。
WaterM :那也才 。
wzh :或许可以。
……
hdu 多校第 ,还是蛮开心的。
代码( WaterM ):
1 |
|

