SRM 438
来源:互联网 发布:编程学习 编辑:程序博客网 时间:2024/04/29 13:27
这轮的三道题目比较有水准,充分反映了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位。
- SRM 438
- srm
- topcode srm SRM 557
- SRM 443
- SRM 442
- SRM 439
- SRM 444
- SRM 434
- SRM 445
- SRM 426
- SRM 456
- SRM 467
- SRM 466
- SRM 465
- SRM 466
- SRM 469
- SRM 470
- SRM 473
- 多维数组使用示例
- NHibernate中ISession的Flush理解
- VC++问题集15
- 逝去的誓言
- 通过任务分割提高嵌入式系统的实时性
- SRM 438
- 跨团队的持续集成: 几个基本矛盾
- 什么是云计算?
- 经典面试问题回答思路
- 【Java.Concurrency】多线程的代价 & Why Threads Are A Bad Idea (for most purposes)
- 中国式的报表与商业智能?
- 2009-07-05
- Java项目的打包与发行
- IE与Firefox在JavaScript上的7个不同句法