JSOI2016一轮Day1

本文记录了一次JSOI竞赛的经历,详细解析了三道题目的算法思路:T1灯塔采用N*Sqrt(N)的优化算法;T2位运算使用状压DP+矩乘的高级技巧;T3炸弹攻击尝试了贪心策略并膜拜了模拟退火算法。

瞬间爆炸,圆满升天

死亡轰炸,送他升天

T1 灯塔

据说这题蒟蒻和神犇的区别就是蒟蒻直接暴力而神犇直接单调性。。。
苯蒟蒻暴力加优化加优化加优化加卡常数不小心ac了这一题=_=
裸暴力O(N^2):
对于山头i,灯塔高度p满足p≥h(j)-h(i)+sqrt(abs(i-j)),也就是找出h(j)+sqrt(abs(i-j))的最大值。
How to 搞?
前方高能
首先,sqrt(abs(h(i)-h(j)))必须向上取整,所以sqrt(abs(h(i)-h(j)))就变成了1,2,2,2,3,3,3,3,3,4,4,4,4,4,4,4,5……
对于每一堆相同的sqrt,取出最大的h(j),减去h(i)和sqrt。灯塔高度p就是每一堆最大值的最大值。
一共有Sqrt(N)堆,维护最大值用RMQ预处理,所以总复杂度就是N*Sqrt(N)。
还有更高端的N*logN的算法,苯蒟蒻不会,只能写暴力优化(忧桑.jpg)。
入门选手瑟瑟发抖

T2位运算

可怕的题。。。。。
一直在搞数位DP,然后连状态都写不出来。
苯宝宝觉得锌好累
结果是状压DP+矩乘。。。
算法太过神,然后就爆蛋了=_=。

T3炸弹攻击

在此先膜拜一下浙江的两位神犇给我们带来了模拟退火算法。
吓得我变成了一个线段树
可怕的浙江。。。
然后,苯蒟蒻只能贪心,结果贪心得比较萎,然后只有20分。
听说有个神犇贪心60分,orz!!!
最后再次膜拜浙江神犇的模拟退火。

后记

Day1完全懵逼。
懵逼
可怕的JSOI。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值