A_G_C_007
AGC007
A Shik and Stone
我是沙比这都能蛙一发
https://agc007.contest.atcoder.jp/submissions/7946110
B Construct Sequences
造两个等差数列\(20000,40000,\ldots,20000n\)和反过来作为基础\(A,B\),然后在上面减一下就好了。
https://agc007.contest.atcoder.jp/submissions/7946428
C Pushing Balls
真tmd神仙题
每次操作后移除对应的石子和洞,并重标号
打表可证(真tmd是打表啊)若干次操作以后,可将一段长度的期望直接作为长度计算,然后这个tmd还是个等差数列= = = = = =
然后打表算算算(甚至tm可以手打
https://agc007.contest.atcoder.jp/submissions/7958580
D Shik and Game
简单打牌,不会可以谢罪= =
可以看出方案一定是每次选择一个前缀\(A[1-i]\),从\(1\)往返一次\(1,i\),然后等到\(1\)处金币出来,直接走到\(i+1\)(期间可以拿\(1-i\)所有金币)
设\(f_i\)表示后缀\(i-n\)的答案
dp式:\(f_i=\min\{f_{j+1}+x_{j+1}-x_i+\max\{T,2(x_j-x_i)\}\}\)
\(2(x_j-x_i)\)与\(T\)关系是单调的,\(<T\)单调队列维护,\(>T\)确定了直接记一个min
https://agc007.contest.atcoder.jp/submissions/7959461
E Shik and Travel
神仙题
(这场8个切C,2个切E,无数人切D,5人切F
先二分
设\(f[i][a][b]\)表示点\(i\),入边是\(a\)出边是\(b\)(\(a,b\)完全可以交换),然后\(a,b\)是没有限制的(因为直接连根的长度任意
然后就神仙优化了
对于相同的\(a\)留最小的\(b\)就行了,所以可以优化掉一维
对于相同的\(b\)留最小的\(a\)也行了,所以\(f[i]\)只用记\(O(siz)\)个二元组\((a_j,b_j)\),其中\(a\)严格递增\(b\)严格递减,剩下的都可以不要
然后转移的时候点\(i\)会有一条路径从\(ls\)子树到\(rs\)子树,我们要满足这一条\(\leq mid\)
很蠢(用原来dp方法)的办法是那么枚举\(a,b,c,d\),其中\(b+c\leq mid\),可以转移给\(a+d\)
优化以后只要枚举一个子树中的\(a\)可以得到最小的\(b\),然后根据\(b\)得到\(c\)的范围,再选一个最小的\(d\)
这个过程可以双指针优化
因为只需枚举三元组较少的儿子在另一个查询,复杂度同启发式合并
https://agc007.contest.atcoder.jp/submissions/7964497
F Shik and Copying String
题解好神啊懒得看题解了
先不考虑最优化步数,\(T\)串显然可以缩连续段,问题转化成:\(S\)串选一个子序列,使得子序列等于缩完后的\(T\),然后由于只能往右走要满足位置都在\(T\)对应左边
作完dp可以判-1了
然后是最优化步数,这里我sb了
dp完之后过程可以转化成由决策点扩展到整个区间,那么首先扩展到区间左端点,最后花一步全部扩展完毕,新的问题是,有\(m\)只鸡贼位置是\(a_i\),想到\(b_i\)去,只能向右走,满足\(a_i\leq b_i\),而且鸡贼相对位置不能改变。这个东西直接模拟是\(n^2\)的,不过可以用单调队列维护做到\(O(n)\)。
https://agc007.contest.atcoder.jp/submissions/7964196
A_G_C_007的更多相关文章
随机推荐
- linux权限管理(chown、chgrp、chomd)
一.文件权限 我们以/etc/passwd 文件为例,用ll长列出其属性如下所示 ll /etc/passwd 每个文件针对每类访问访问者都定义了三种权限 文件类型中: p:表示命名管道文件 d:表示 ...
- laravel 5.5 仓库模式 文件之间接口与实现操作
仓库模式 最直接的意思就是: Eloquent数据(数据库)查询 方便快捷,简单明了.自己怎么写的,就怎么去调用,完全ok~ 本质意思: 仓库就像是业务内部的数据对象集合,负责协调业务和数据映射层之 ...
- nginx 反向代理Jenkins
进入nginx 配置文件 cd /root/nginx/conf 找到nginx.conf 修改server块内容: server { listen 80; ...
- MySQL--用户管理 pymysql 索引
目录 用户管理 创建mysql账户 权限管理 涉及到的表 pymysql 索引 语法 结论 用户管理 主要是为了控制权限,让不同的人只能操作只属于只记得那部分数据 创建mysql账户 账户中涉及三个数 ...
- BUAA-OO-2019 第三单元总结
JML语言理论基础梳理及工具链 注释结构 JML以javadoc注释的方式来表示规格,每行都以@起头. 行注释://@annotation 块注释:/* @ annotation @*/ JML表达式 ...
- python后端链接数据库-----MySQLdb
连接数据库之前请先确认好以下事宜: 1.已经建议好相应的数据库 2.在数据库中已经建立了相应的表 3.已经安装了MySQldb模块 示例: import MySQLdb # 打开数据库连接 db = ...
- vue-cli项目中使用vw——相比flexible更原生的移动端解决方案
安装命令行输入: yarn add postcss-px-to-viewport 或 npm i postcss-px-to-viewport -save -dev 配置package.json中,在 ...
- 英语insuraunce保险insuraunce单词
English Alternative forms insuraunce Etymology From the older form ensurance, see also assurance. Pr ...
- Jmeter如何测试接口
现在对测试人员的要求越来越高,不仅仅要做好功能测试,对接口测试的需求也越来越多!所以也越来越多的同学问,怎样才能做好接口测试? 要真正的做好接口测试,并且弄懂如何测试接口,需要从如下几个方面去分析问题 ...
- 《Scala程序设计》暨Scala简介
JVM语言 JVM上的语言越来越多了,从前几年的groovy.Scala和Clojure,现在又听说一门Kotlin.对于前三种语言,groovy算是JVM平台上的动态脚本语言,可以类比Python: ...