2017.8.9

总结

1. 这次实战我个人感觉还是不错的,至少告别了WA和RE。

2. 有的时候一个朴素的算法加上尽可能多的优化便可以多10~20分

3. 被卡常的感觉真的很不爽。T_T


实战

T1 

这道题标算是线性筛,然而当时我不会。。。于是就写了一个朴素的(n√n+q)的算法,然后加了个小优化,在判断i是否是小X喜欢的数时,枚举2~√n以内的质数,然后找到第一个因子就break。亲测这样做当l,r<=5000000时是完全没有问题的。

然而数据规模l,r<=10000000,当时我就……


T2

这道题第20个点据说是XYX特意制作的,然后许多人会莫名其妙地WA掉,不过我也不清楚为什么。。。我个人感觉AC这道题是很轻松的,貌似没什么要特别注意的地方。

这道题就是一个简单的BFS,然后hash判重时记录到这个点时钥匙是否相同。

至于钥匙的状态需要压位和一些简单的位运算技巧,然后便可轻松水过。



T3

这道题一看就是一道LCA题,当时就开始认真地推公式。。。

经过我不懈地努力,似乎真的发现了点规律。

最后只需输出 (A——B经过的节点数 + B——C经过的节点数 - A——C 经过的节点数 + 1)/2 即可

//不懂的可以自行画个图理解一下...

至于A——B所经过的节点数,即为depth[A] + depth[B] - depth[lca(A,B)]*2 +1。

时间复杂度为(nlogn),当n<=200000时是完全可以过的。

但是我只有80分,估计是常数过大。。。 


下午上课时把线性筛素数听懂了,好开心。。。这样T1便可以做了



评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值