51nod算法马拉松23划水记

在愚人节打的一场比赛=w=
排在了44(好数字)rating++

3.31

晚上强行留下来做了几套试卷,整个人都处在一种非常颓废的状态_ (:з」∠)_
初三苟压力大啊~~~

4.1

woc辣么多个AK的
D题E题也辣么多人过吓到了
看来这场很水啊~~
抱着这种想法先去看了E题。。。
这不是裸的莫队+树状数组吗?
E题送分smg~~
回头看A题,三角函数懵逼.jpg
B题,随便推推不是一个等比数列就能解决吗?
啊好像精度不够怎么办?
C题,tarjan缩环然后拓扑图上Dp
a[x] mod a[y]的最大值?
那不就是与最大值不同的次大值嘛。。。
D题,看到n这么小就知道是状压Dp了。。。
大概是压每一列的状态再维护一下最短路

这次的题怎么这么水?
F题看了一下一脸懵逼,但听说是模型转化一下洲阁筛
反正我不会=w=

好决定了ABCDE拿下的话应该能有前30 (^o^)/~

A题仔细想想,大胆猜想一下答案应该不会有-1
那么特殊值法带进去喽
x=π3
我们知道 2cos(nx)=i>02aicos(x)i
那么这样右边的每一个cos都是1,左边就相当于右边的系数和!
也就是答案就是 2cos(nπ3)
无聊的话分类讨论一下就可以了
反正cmath库的精度是够的,直接调用就好了2333
B题随手化了一下式子发现其实答案和读入的这n个数都无关
设总的期望为c,停止的概率为p,那么根据期望的线性ans=(1-p)ans+c
即ans=c/p
将c=n(n-1)/2n,p=m/n代入,得到ans=n(n-1)/2m
这就是答案了。。。
接着我看C题似乎有点难写就决定先去写思路简单明了的E题
等等模数怎么是2^64?要用乘法取模黑科技啊?
常数好大怎么卡?沉思.jpg
你逗我呢这道题的答案又不会爆long long干嘛要取模啊
出题人很棒棒哦
很快地写完测完样例交了一发。。。
TLE
啊要卡常啊。。。
TLE…
TLE…
TLE…
TLE…
TLE…
很好出题人你赢了,难怪这道题是E题,完美的考查了选手的代码常数、卡常技巧和底层优化的熟练程度
最后我很机(sang)智(bing)地把块大小从233一直试到了333,然后终于卡过去了
QwQ不容易啊
这里写图片描述
我感受到了出题人深深的恶意

然后去淦C题
写出来一切正常然后发现WA?
看看时间woc舍监要查房了
算了明天再改。。。

4.2

什么早上还要做模拟赛(╯‵□′)╯︵┻━┻
写到后面弃疗继续改C
最后发现原来答案和次大值要分开来维护。。。
还是too young
改过之后还要改模拟赛的题就没时间打D了,算了就先这样吧。。。

D题口胡一下就是以每一列的第一行的最短路为标准,压每一行的最短路与上一行之间的差值。
因为相邻两点之间的最短路差最多为1,而转移可以预处理,所以复杂度是O(6^nm^2)
卡卡应该是能过的。。。

UPD:似乎E题正解并不是这样做,看来还是naive地水了过去_ (:з」∠) _
正解直接是分块,设F[i][j]表示块i到块j的答案,那么F[i][j]=F[i+1][j]+F[i][j-1]+v[i][j]
其中v[i][j]表示块i和块j的答案。
求v[i][j]的话可以像排序一样合并i,j这两个块,然后从前往后扫,像树状数组一样维护4个值,然后分类讨论,如果扫到的值属于后面那个块就更新答案。
然后对于每个询问都可以分成三部分,然后利用和上面一样的方法对每两个部分分别计算答案。
这样的总复杂度就是 O(nn) 的,强行用排序+扫描的方法去掉了树状数组的log
也是挺机智的,反正我还是过了_ (:з」∠) _

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值