Gravatar
徐驰
积分:16
提交:8 / 20
回复 @QhelDIV :
正解

Gravatar
Makazeu
积分:2998
提交:780 / 1516
楼上正解。

Gravatar
QhelDIV
积分:2334
提交:638 / 1737
无限切割
f[i]表示第i个串有多长
找到长度最小大于N那个串
将它分成3份 ...(1)moo..oo(2)....(3)
(1)和(3)相同,判断如果f[i-1]<=N<=f[i]-f[i-1] 即N在中间(2) 这样就可以直接输出了
否则递归找下去
根据题目性质可得N只可能在我们找到的第i个串的(2)或者(3)
所以让再找到最短的比(N-f[i]+f[i-1])长的串j,重复上述步骤
如果递归到了S0,直接输出即可