【USACO】2018 January Contest, Platinum题解

本文详细介绍了USACO 2018 January Contest, Platinum组的比赛经历,包括T1、T2、T3三道题目的解题思路和优化过程。作者通过动态规划和剪枝技巧,成功在限定时间内获得满分。T1通过优化DP实现(O(NK))复杂度,T2通过树形结构优化算法达到(O(N^2)),T3利用前缀和解决复杂度为(O(N))的问题。" 125376599,10682424,JavaScript随机数详解与应用,"['javascript', '前端开发']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【比赛经历】

  • 先看完题,准备按顺序做。
  • T1先写了一个\(O(NK^{2})\)的DP,交一发,得分8/10。
  • 仔细一想,\(O(NK)\)的做法好像可行,但稍微有点难写,决定卡常+骗分。
  • 把Max换成If语句,给循环变量加上人register,得分9/10。
  • 4次提交后,发现T的那个测试点满足\(K≥90\)、\(N≥80000\),针对性地骗分后,得到满分。
  • 此时时间刚过1h。
  • T2想了一段时间,得到一个\(O(N^{2})\)的算法,写完提交,得分2/11。
  • 一会儿过后,发现一个较强的剪枝,加上后得到满分。(实际上存在能将这个算法卡到\(O(N^{2})\)的数据)
  • 此时时间过了1.5h+。
  • 仔细想了T3后发现是简单题,写完提交,顺利满分。
  • 时间一共过了2h+。
  • 总之这场比赛并不是每道题都会做,但通过一些奇技淫巧得到了满分,笔者还是很兴奋的

【T1】Lifeguards

【题目链接】

【题解链接】

【思路要点】

  • 首先,如果区间A包含区间B,那么区间B是没有任何作用的,因此,被任何另一个区间包含的区间均可以被直接删除,并将\(K\)减1。
  • 如此操作后,区间的左右端点均是单调的,因此可以简单地设计DP。设\(F_{i,j}\)表示考虑前\(i\)个区间,保留第\(i\)个区间,且已经放弃了\(j\)个区间时,可以覆盖的最长的长度。
  • 显然有\(O(K)\)的转移,时间复杂度\(O(NK^{2})\)。
  • 笔者在考场上的做法针对较大的数据进行了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值