BJOI2019做题笔记
奥术神杖(分数规划、AC自动机)
发现我们要求的东西很像一个平均数(实际上就是几何平均数),那么我们现在考虑一种运算,使得乘法能够变成加法、开根可以变成除法,不难想到取对数满足这个条件。我们对\(\sqrt[v]{\prod a_i}\)取\(ln\)之后得到\(\frac{1}{v} \sum ln\ a_i\),那么我们现在需要它最大。
这显然是一个分数规划,二分之后考虑check。发现check类似于字符串匹配,在AC自动机上DP求解即可。复杂度\(O(nslog\frac{ln 10^9}{eps})\)
注意一个细节。输出方案的时候可能存在:模板串当前位置为'.'时有多种方案满足最优解,但是当前位置字符确定。在输出的时候需要额外的判断。
勘破神机(递推、二项式定理)
强行二合一最为致命……
\(f_i\)是\(f_0 = f_1 = 1\)的斐波那契数列,设\(g_i\)表示\(3 \times 2i\)的棋盘的方案数,可以得到\(g_i\)的递推式为\(g_i = 2\sum\limits_{j=0}^{i-1} g_j + g_{i-1}\),即\(g_i = 4g_{i-1} - g_{i-2},g_0 = 1 , g_1 = 3\)。
\(f_i\)的通项公式为\(\frac{1}{\sqrt{5}} ((\frac{1 + \sqrt{5}}{2})^{i+1} - (\frac{1 - \sqrt{5}}{2})^{i+1})\),\(g_i\)大力解一下特征方程或者丢到OEIS上找一下可以得到通项公式\(g_i = \frac{\sqrt{3}}{6} ((1 + \sqrt{3})(2 + \sqrt{3}) ^ i - (1 - \sqrt{3})(2 - \sqrt{3})^i)\)。
然后因为\(\binom{x}{k} = \frac{x^{\underline{k}}}{k!}\)是一个多项式,把多项式的系数求出来问题就等价于求\(\sum\limits_{i=l}^r f_i^k\)和\(\sum\limits_{i=l}^r g_i^k\),方法跟这里的一样。
关于特征方程一篇还不错的Blog
送别(???)
不会留坑
排兵布阵(背包)
BJOI出PJ题……
考虑暴力DP:设\(f_{i,j}\)表示考虑前\(i\)个城市共用\(j\)个士兵的最大分数,然后不难发现每一个城市中的驻扎人数在恰好为\(2x+1\)时才有可能达到最优,其中\(x\)是第\(i\)个城市的其中一个人的驻扎兵力,那么有效的驻扎兵力数只有\(S\)个,\(O(NMS)\)地DP即可。
光线(???)
考虑将两个玻璃合并。那么枚举在两块玻璃之间反射了多少次,就是一个无穷等比数列求和。
不难得到光线从\((a_i , b_i)\)和\((a_j , b_j)(j=i+1)\)两块玻璃之间穿过的概率是\(a_ia_j \frac{1}{1-b_ib_j}\),从\(j\)层穿入、再从\(j\)层穿出或者从\(j\)层反射的概率是\(b_j + a_j^2b_i \frac{1}{1-b_ib_j}\),这就是将两个玻璃合并之后从下表面反射的概率,从上表面反射的概率同理。那么我们就可以把两个玻璃合并起来。从上往下依次合并,就可以避免记录从上表面反射的概率。
删数(线段树)
一个很巧妙的转化:考虑序列中的一个数\(x(x \leq N)\)如果它出现了\(p\)次,则覆盖区间\([x-p+1,x]\),那么答案相当于求\([1,N]\)内没有被覆盖的整点个数。
那么我们需要动态维护这个东西,支持单点修改、区间平移,直接用线段树维护。值得注意的一点是:当\(x>N\)的时候不能够产生贡献,区间平移的时候需要注意这一点。
BJOI2019做题笔记的更多相关文章
- C语言程序设计做题笔记之C语言基础知识(下)
C 语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行 事.并且C是相当灵活的,用于执行计算机程序能完成的 ...
- C语言程序设计做题笔记之C语言基础知识(上)
C语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行事.并且C是相当灵活的,用于执行计算机程序能完成的几乎 ...
- SDOI2017 R1做题笔记
SDOI2017 R1做题笔记 梦想还是要有的,万一哪天就做完了呢? 也就是说现在还没做完. 哈哈哈我竟然做完了-2019.3.29 20:30
- SDOI2014 R1做题笔记
SDOI2014 R1做题笔记 经过很久很久的时间,shzr又做完了SDOI2014一轮的题目. 但是我不想写做题笔记(
- SDOI2016 R1做题笔记
SDOI2016 R1做题笔记 经过很久很久的时间,shzr终于做完了SDOI2016一轮的题目. 其实没想到竟然是2016年的题目先做完,因为14年的六个题很早就做了四个了,但是后两个有点开不动.. ...
- LCT做题笔记
最近几天打算认真复习LCT,毕竟以前只会板子.正好也可以学点新的用法,这里就用来写做题笔记吧.这个分类比较混乱,主要看感觉,不一定对: 维护森林的LCT 就是最普通,最一般那种的LCT啦.这类题目往往 ...
- java做题笔记
java做题笔记 1. 初始化过程是这样的: 1.首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化: 2.然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序 ...
- SAM 做题笔记(各种技巧,持续更新,SA)
SAM 感性瞎扯. 这里是 SAM 做题笔记. 本来是在一篇随笔里面,然后 Latex 太多加载不过来就分成了两篇. 标 * 的是推荐一做的题目. trick 是我总结的技巧. I. P3804 [模 ...
- PKUWC/SC 做题笔记
去年不知道干了些啥,什么省选/营题都没做. 现在赶应该还来得及(?) 「PKUWC2018」Minimax Done 2019.12.04 9:38:55 线段树合并船新玩法??? \(O(n^2)\ ...
随机推荐
- [日常] 解决mysql不允许外部访问
1.在端口已经开放的情况下,ubuntu mysql 3306允许远程访问vim /etc/mysql/mysql.conf.d/mysqld.cnf注释#bind-address = 127.0.0 ...
- es6 常用方法
来自 https://www.cnblogs.com/lhl66/p/9555903.html 侵删 来自 https://www.cnblogs.com/lhl66/p/8862106.html 侵 ...
- Vue开篇之Vue-cli搭建项目
介绍 Vue.js是一套构建用户界面的渐进式框架.Vue 只关注视图层,采用自底向上增量开发的设计.Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件. 第一步:安装node ...
- 自然语言处理(nlp)比计算机视觉(cv)发展缓慢,而且更难!
https://mp.weixin.qq.com/s/kWw0xce4kdCx62AflY6AzQ 1. 抢跑的nlp nlp发展的历史非常早,因为人从计算机发明开始,就有对语言处理的需求.各种字符 ...
- Android 获取 上下文环境参数 getResources
1----context.getResources().getConfiguration().orientation;//获取屏幕方向int类型,1:portrait,2:landscape 2--- ...
- 系统前端基本文件+ajax部分理解
静态页面: 一.static: css dist fonts images js model 二.templates: html ajax搜索操作: <html> <head> ...
- mac /linux vi/vim永久显示行号开启高亮模式
临时显示:进入vi编辑器,输入命令 :set number //下次在进入vi 无法显示行号 :set nonumber //本次vi关闭行号显示 vi 每次修改后推荐使用命令: sourc ...
- python 爬取全本免费小说网的小说
这几天朋友说想看电子书,但是只能在网上看,不能下载到本地后看,问我有啥办法?我找了好几个小说网址看了下,你只能直接在网上看,要下载txt要冲钱买会员,而且还不能在浏览器上直接复制粘贴.之后我就想到py ...
- PGSQL-通过SQL语句来计算两个日期相差的天数
这是本人第一次写的~我在某次需求中遇到一个问题,如何在SQL语句中计算出两个日期的天数,然后用那个结果来进行数据的筛选呢?通过网上查阅了资料发现 date_part('day', cast(time1 ...
- 伙伴系统之避免碎片--Linux内存管理(十六)
1 前景提要 1.1 碎片化问题 分页与分段 页是信息的物理单位, 分页是为了实现非连续分配, 以便解决内存碎片问题, 或者说分页是由于系统管理的需要. 段是信息的逻辑单位,它含有一组意义相对完整的信 ...