2023.12.30模拟赛总结

前言:这次比赛打的不是很好,100pts,rank8

1|0T1

赛时想到了正解,但是因为一些题面的原因和代码细节没调出来
首先可以写出暴力dp:f[i][j]表示到第i位,选了i且选了j个哨岗的最大范围
枚举k为上一个,直接暴力转移是O(n3)的,过不去
然后,我们发现可以分类讨论,如果[li,ri][lk,rk]没有交集,就可以直接加上区间长度,把每一个r插入vector,在枚举i的时候动态更新这颗线段树
如果被包含,那么就不会优,不会对答案做出贡献,不用管
如果有交集,那么加上i的贡献就是rirk,发现可以对于每一个位置把rk减去,然后就与位置无关了,直接线段树维护
开1000棵线段树即可

2|0T2

有点小抽象的
首先我们要确定多边形的点的顺序,把y值最小的同时x值最小的点求出,然后用atan2(y,x)极角排序,作用就是求(x,y)与原点的连线与x轴正半轴的夹角
然后考虑区间dp,因为平均数是固定的,n,根号也是固定的,所以只用分别对一段区间考虑
f[i][j]表示i号点到j号点的最小方差
转移时,枚举一个k,将f[i][j]f[i][k]+f[k][j]+getans(i,j,k)比较大小,getans(i,j,k)就是这三个位置组成的三角形的贡献,这是可以直接累加的,要加这个是因为两个区间合并少了这个三角形,所以加上即可

3|0T3

个人感觉还好
发现两边都超过m位时,右手的每次增加的量只会随奇偶性变,然后先暴力,然后求出对应的矩阵,乘起来后用矩阵快速幂搞搞即可

4|0T4

把团抽象成点,点抽象成边,题意就转化成了,给每一条边定向,使得点的入度为偶数的点尽量多
把dfs树求出,然后从底向上调整,先把全体边连往祖先,然后对于一个点,如果度数为偶数,就不用调整,奇数就把父边取反,这样调整到根就可以尽量多了
方案就把连向每个点的边两两匹配即可


__EOF__

本文作者longzhaocheng
本文链接https://www.cnblogs.com/longzhaocheng/p/17936763.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   longzhaocheng  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示