4.5省选模拟solution
\(4.5\)省选测试\(solution\)
题面可是我精心准备(咕咕咕)了一周写出来的,大家就当看故事吧(那里面的人物确实是存在的,\(E\)就是本人啦,也算是对一段经历的回忆吧,所以这套考试的题目叫——忆)
暴力分给了\([20,40]+30+[30,60]=[80,130]\)
\(std\)的代码量\(1kb+1kb+2kb\)
因为出题人自己也不喜欢很长的代码,所以就找了几个较短的题
知识点考察
\(T1:wqs\)二分\(+\)斜率优化\((P5308)\)
\(T2:\)小清新结论题\((CF351E)\)
\(T3:\)图论,最小路径覆盖\((P5769)\)
总的来说,知识点考察比较全面,还是不错的
预计得分情况人均\(100+100+[30,60]=[230,260]\)
思维难度系数\(Lv4\)
代码难度系数\(Lv2\)
综合难度系数\(Lv3\)
\(T1\)
比较显然的,既然出现了恰好\(k\)次的限制,比较容易想到\(wqs\)二分,每次需要\(O(n)\)转移
考虑优化\(O(n^2)\)
正推式子\(:\)
\(f[i]=f[j]+\frac{i-j+1}{n-j}\)
发现并不是很好搞
那么考虑一下倒推
\(f[i]\)表示从后往前进行选人还剩\(i\)个人的最大贡献
\(f[i]=\max(f[j]+\frac{i-j}{i})\)
\(f[i]=\max(f[j]+1-\frac{j}{i})\)
直接以\(i^{-1}\)为斜率就好了
凸性证明的话,如果\(k\)越大,价值越多,我们每决策一次就减去一部分贡献就好了
\(T2\)
首先全部取正
\(a_1...a_n\)
那么我们考虑代价
对所有的\(i<j\)
要产生逆序对
\(Sit_1:a_i<a_j\)
\(sol_1:j取反\)
\(sol_2:i,j取反\)
\(Sit_2:a_i>a_j\)
\(sol_1:\)都不取反
\(sol_2:j\)取反
那么对于每一个\(i\)进行两个决策
我们考虑我们决策的话为了保证逆序对不重复
那么我们只需要对于目前最大的数字求一下贡献就好了,或者说,每个数都会比自己小的数进行逆序对统计
那么我们的贡献就是取正,右边小的,取负,左边小的,直接求就好了
\(T3\)
原本是要出\(NOI2016\)循环之美的
至于换题的原因嘛,\(MD\)代码怎么才\(1kb,\)教练不得吐槽我\(?\)
那我换成\(2kb\)的目前的\(T3\)了。。。\(kx\)
对于航线之间的关系建图,然后就成了最小路径覆盖问题
直接建一建图,写一个网络流板子就好了
建图的话\(:\)
考虑怎么才能从航线\(i->j\)
\(d_i+t(x_i,y_i)+p_{y_i}+f(y_i,x_j)\leq d_j\)
后记
并没有打算出很难的题,找了几道有意思的题就出了
其实做了这么多题,感觉一道题最快乐的地方是能体会到这道题的乐趣,这个算法的精妙
或许目前成绩是唯一衡量标准,但是,对一个事物的喜欢不仅仅是无论怎样都要取得好成绩,能每天在自己热爱的事业上努力着,也是一件快乐的事,\(OI\)嘛,是乐趣,如果沾染太多功利和虚伪,那就不快乐了,不是吗\(?\)
考试最开心的事也是思考的过程啊,即使最后可能没有想通,但是那份过程也是难得的快乐\(\sim\)
每个人的人生都是联通图,没有到达终点之前,我们就没资格说失败\(!\)
\(2022.4.5--Eternal\underline{}Battle\)
4.5省选模拟solution的更多相关文章
- 【洛谷比赛】[LnOI2019]长脖子鹿省选模拟赛 T1 题解
今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手 ...
- @省选模拟赛03/16 - T3@ 超级树
目录 @description@ @solution@ @accepted code@ @details@ @description@ 一棵 k-超级树(k-SuperTree) 可按如下方法得到:取 ...
- 省选模拟赛 project
solution: 最小割问题. 建如下边: (S,i,Ai)代表选用A语言编写第i个项目: (i,T,Bi)代表选用A语言编写第i个项目: 其后注意要反向连边 (i,j,D)代表选用B语言编写第i个 ...
- 省选模拟赛第四轮 B——O(n^4)->O(n^3)->O(n^2)
一 稍微转化一下,就是找所有和原树差距不超过k的不同构树的个数 一个挺trick的想法是: 由于矩阵树定理的行列式的值是把邻接矩阵数值看做边权的图的所有生成树的边权乘积之和 那么如果把不存在于原树中的 ...
- [省选模拟]Rhyme
考的时候脑子各种短路,用个SAM瞎搞了半天没搞出来,最后中午火急火燎的打了个SPFA才混了点分. 其实这个可以把每个模式串长度为$K-1$的字符串看作一个状态,这个用字符串Hash实现,然后我们发现这 ...
- [省选模拟]array
这题真是太神了! 考试的时候冲着四十分写了个$O(\frac{N^3logN}{32})$的制杖算法. 然后就狠狠的T掉了.如果没有充分的理解单调性和应用单调性就只有10分的傻逼分拿了. 首先考虑枚举 ...
- NOI2019省选模拟赛 第五场
爆炸了QAQ 传送门 \(A\) \(Mas\)的童年 这题我怎么感觉好像做过--我记得那个时候还因为没有取\(min\)结果\(100\to 0\)-- 因为是个异或我们肯定得按位考虑贡献了 把\( ...
- NOI2019省选模拟赛 第六场
传送门 又炸了-- \(A\) 唐时月夜 不知道改了什么东西之后就\(A\)掉了\(.jpg\) 首先,题目保证"如果一片子水域曾经被操作过,那么在之后的施法中,这片子水域也一定会被操作&q ...
- 省选模拟赛 arg
1 arg (arg.cpp/in/out, 1s, 512MB)1.1 Description给出一个长度为 m 的序列 A, 请你求出有多少种 1...n 的排列, 满足 A 是它的一个 LIS. ...
随机推荐
- Redis数据类型:五大基本数据类型及三种特殊类型
String (字符串类型) String是redis最基本的类型,你可以理解成Memcached一模一样的类型,一个key对应一个value. String类型是二进制安全的,意思是redis的st ...
- JavaScript数组操作常用方法
@ 目录 数组基础遍历方法. for for of for in 数组的基础操作方法. push:尾部追加元素 pop:尾部移出元素 unshift:头部追加元素 shift:头部移出元素 splic ...
- 目标检测复习之Loss Functions 总结
Loss Functions 总结 损失函数分类: 回归损失函数(Regression loss), 分类损失函数(Classification loss) Regression loss funct ...
- 用STM32玩L298N(正反转、调速)
目录 用STM32玩L298N(正反转.调速) 控制直流电机正反转 使用PWM调速 用STM32玩L298N(正反转.调速) 开发板:STM32F103ZET6(正点原子F103核心板)/STM32F ...
- Jmeter跨线程组获取token(彻底解决因格式token报错)
将token设置为全局变量网上方式方法千千万,但是你就是获取token会失败,不是提示格式错误,就是提示无法获取token,没安装Jmeter的可以查看前两期教程,有详细介绍 在工作当中如果仅仅是一个 ...
- torch.cat()和torch.stack()
torch.cat() 和 torch.stack()略有不同torch.cat(tensors,dim=0,out=None)→ Tensortorch.cat()对tensors沿指定维度拼接,但 ...
- 从零开始实现lmax-Disruptor队列(二)多消费者、消费者组间消费依赖原理解析
MyDisruptor V2版本介绍 在v1版本的MyDisruptor实现单生产者.单消费者功能后.按照计划,v2版本的MyDisruptor需要支持多消费者和允许设置消费者组间的依赖关系. 由于该 ...
- 技术分享 | Appium 用例录制
原文链接 下载及安装 下载地址: https://github.com/appium/appium-desktop/releases 下载对应系统的 Appium 版本,安装完成之后,点击 " ...
- .NET中测试代码运行时间
更新记录 本文迁移自Panda666原博客,原发布时间:2021年6月29日. 计算代码运行的时间,除了呆萌地用秒表去计时,或者可以通过Visual Studio来查看,还可以在.NET代码中使用St ...
- 效率效率!如何使用Python读写多个sheet文件
前言 怎么样使用Python提高自己的工作效率,今天就给大家分享这个吧. 我们经常用pandas读入读写excel文件,经常会遇到一个excel文件里存在多个sheet文件,这个时候,就需要一次性读取 ...