\(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的更多相关文章

  1. 【洛谷比赛】[LnOI2019]长脖子鹿省选模拟赛 T1 题解

    今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手 ...

  2. @省选模拟赛03/16 - T3@ 超级树

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 一棵 k-超级树(k-SuperTree) 可按如下方法得到:取 ...

  3. 省选模拟赛 project

    solution: 最小割问题. 建如下边: (S,i,Ai)代表选用A语言编写第i个项目: (i,T,Bi)代表选用A语言编写第i个项目: 其后注意要反向连边 (i,j,D)代表选用B语言编写第i个 ...

  4. 省选模拟赛第四轮 B——O(n^4)->O(n^3)->O(n^2)

    一 稍微转化一下,就是找所有和原树差距不超过k的不同构树的个数 一个挺trick的想法是: 由于矩阵树定理的行列式的值是把邻接矩阵数值看做边权的图的所有生成树的边权乘积之和 那么如果把不存在于原树中的 ...

  5. [省选模拟]Rhyme

    考的时候脑子各种短路,用个SAM瞎搞了半天没搞出来,最后中午火急火燎的打了个SPFA才混了点分. 其实这个可以把每个模式串长度为$K-1$的字符串看作一个状态,这个用字符串Hash实现,然后我们发现这 ...

  6. [省选模拟]array

    这题真是太神了! 考试的时候冲着四十分写了个$O(\frac{N^3logN}{32})$的制杖算法. 然后就狠狠的T掉了.如果没有充分的理解单调性和应用单调性就只有10分的傻逼分拿了. 首先考虑枚举 ...

  7. NOI2019省选模拟赛 第五场

    爆炸了QAQ 传送门 \(A\) \(Mas\)的童年 这题我怎么感觉好像做过--我记得那个时候还因为没有取\(min\)结果\(100\to 0\)-- 因为是个异或我们肯定得按位考虑贡献了 把\( ...

  8. NOI2019省选模拟赛 第六场

    传送门 又炸了-- \(A\) 唐时月夜 不知道改了什么东西之后就\(A\)掉了\(.jpg\) 首先,题目保证"如果一片子水域曾经被操作过,那么在之后的施法中,这片子水域也一定会被操作&q ...

  9. 省选模拟赛 arg

    1 arg (arg.cpp/in/out, 1s, 512MB)1.1 Description给出一个长度为 m 的序列 A, 请你求出有多少种 1...n 的排列, 满足 A 是它的一个 LIS. ...

随机推荐

  1. 【多线程】Thread静态代理模式理解

    Thread静态代理模式理解 代码示例: /** * @Description 静态代理模式 * @Author hzx * @Date 2022-03-26 */ public class Stat ...

  2. 用python实现自动化登录禅道系统 设置定时器自动执行脚本

    由于各种原因,我想试下用python实现自动登录禅道系统,并且每天定时执行.(本人第一次接触自动化,在大佬眼中门槛都没摸到的类型) 首先缕清思路: 1.实现自动登录禅道系统,用selenium实现2. ...

  3. 好客租房41-react组件基础综合案例-渲染列表数据

    1渲染列表 在state定义数据 进行数据渲染 //导入react import React from 'react' import ReactDOM from 'react-dom' //导入组件 ...

  4. python之名称空间与函数对象

    目录 名称空间 内置名称空间 全局名称空间 局部名称空间 名称的查找顺序 作用域 global关键字 nonlocal关键字 函数名的多种用法 函数的嵌套 名称空间 名称空间就是变量名与变量值绑定关系 ...

  5. Activate-or-Not:learning-customized-activation

    关于activate-or-Not的PPT paper code step1 step2 step3 step4 step5 step6 step7 step8 step9 step10

  6. 【Unity Shader】syntax error: unexpected token 'struct' at line x 错误解决办法

    以下代码处出现了syntax error: unexpected token 'struct' at line 33的错误 struct a2v { float4 vertex_position : ...

  7. Linux系统安装ActiveMQ

    下载安装包 https://activemq.apache.org/components/classic/download/ 上传至服务器并解压 [root@localhost activemq]# ...

  8. Linux查看系统参数配置

    Linux查看系统参数 1.查看内存(以GB为单位) [root@rac1 ~]# free -g total :内存总数,物理内存总数 used :已使用内存 free :空闲的内存数 shared ...

  9. 【机器学习】数据准备--python爬虫

    前言 我们在学习机器学习相关内容时,一般是不需要我们自己去爬取数据的,因为很多的算法学习很友好的帮助我们打包好了相关数据,但是这并不代表我们不需要进行学习和了解相关知识.在这里我们了解三种数据的爬取: ...

  10. 记住这几个git命令就够了

    git clone: 下载初始化git add:添加git commit -m ' ' :提交 带消息git push:推送git pull: 拉取 git config --global user. ...