20151017模拟赛总结

这次模拟赛运气还不错

浏览完三题并做完第一题花了40分钟,慢了点,但还是不至于影响节奏。

第二题开始想了这个图的性质,和逆序对有什么关系,然后抱着撞运气的心态想了下最长上升子序列,发现这样很科学。。想到这里一共花了接近二十分钟。。然后就写了个线段树优化的LIS,然后第二问想不到比较好的方法了。。然后就拼尽全力对N^2算法进行常数优化,代码写了100行,花了接近一个小时。最后还是老老实实地得了N^2的60分。。但是我把时限放长,每个点都差不多1.5秒过。。本地开上O2后每个点都是0.2秒就出来了。。

第三题纯属运气,写了个骗分程序就乱弄了60分。。

二三题都用了比较类似的一个思路。二题判断一个数是否在一个LIS上,方法是正反跑两次DP,充要条件是以a[i]为开始的最长上升和以a[i]为结束最长上升序列长度之和-1等于全局LIS。三题判断一条边<a,b>是否在最短路上,方法是正向从S和反向从T跑最短路,然后看dis1[a]+<a,b>+dis2[b]是否等于全局S到T的最短路。

以后对于这种问题,模式就是从两边分别跑一次,然后分段组合一下就可以判断了。这种思路比较巧妙。

这次第三题出题人恶意卡SPFA,最后两个点SPFA被卡到几十秒,让我怀疑自己是不是SPFA打错了。。还是堆优化的dijkstra效果最稳定,以后尽量写这个,毕竟不用手打堆还是很方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值