现在的位置: 首页 > 综合 > 正文

SRM 438

2019年04月14日 ⁄ 综合 ⁄ 共 2128字 ⁄ 字号 评论关闭

这轮的三道题目比较有水准,充分反映了Tc的前沿水平。

 

D1 250p UnluckyIntervals

 

首先计算得到以下公式:

 

UnluckyNumber = ( K - LuckySet[left] ) * ( luckySet[right] - K ) - 1

 

然后建立pair < long long, int > 代表UnluckyNumber 和K。

 

由于题目要求只需要N个(N=100),因此对每个间隔枚举100个,排序,前N个就是解。

 

 

 

 D1 500p EndlessStringMachine

 

很好的一道分形题,在2区中酿成了32sub/0ac的灭团惨案。

 

首先要确定,当s超过一定数量时,后面的迭代没有任何意义:因为他们远远超出了max和min的值。不确定这点,此题根本无法完成……

 

由于max和min之间只有100个字符,可以考虑逐个求解。

 

分形题的关键是如何划分层次,从而从最外层确定到最内层。

 

如$xy$z,$=ab,s=3的例子

 

最终字符串为 

abxyabzxyabxyabzz

 

如何确定8位的y?(以开头a为0位)

 

我们可以在$前后分层 abxyabz | xy | abxyabz | z 。这是最外的第三层分割方案。abxyabz的长度可以预先算出F(2)=7,8 = 7 - 1 +2,因此落在$xy$z的2位。

 

假如是确定10位的b,同样观察abxyabz | xy | abxyabz | z。

 

最外层的第二个$从9位到15位,10 - 7 - 2 = 1因此进入下层递归函数,求abxyabz的1位。

 

 

 

 

 

 

 

【上篇】
【下篇】

抱歉!评论已关闭.