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

随机推荐

  1. 剑指offer之面试题2:实现Singleton模式

    来源:剑指offer 这篇主要记录<剑指offer>书籍中的面试题2:实现Singleton模式 使用语言:C# 代码环境:VS2017 总共有5中解法,从前往后依次优化. 结构如下: 前 ...

  2. 这两个小技巧,让我的SQL语句不仅躲了坑,还提升了1000 倍

    原文: https://cloud.tencent.com/developer/article/1465618 本次来讲解与 SQL 查询有关的两个小知识点,掌握这些知识点,能够让你避免踩坑以及提高查 ...

  3. C# 调用JS Eval,高效率

    /// <summary> /// 动态计算表达式 /// </summary> class JSCaller { /// <summary> /// 动态计算表达 ...

  4. dubbo循序渐进 - Jenkins自动化部署

    最新版安装docker pull jenkinsci/jenkins sudo chown -R 1000:1000 ~/jenkins docker run -d -p : -m 1024m -v ...

  5. spark过滤算子+StringIndexer算子出发的一个逻辑bug

    问题描述: 在一段spark机器学习的程序中,同时用到了Filter算子和StringIndexer算子,其中StringIndexer在前,filter在后,并且filter是对stringinde ...

  6. Mybatis架构与原理

    一.简介 MyBatis 是一款优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 Mybatis可以将Sql语句配置在XML文件中,避免将Sql语句硬编码 ...

  7. MongoDB常用数据库命令第二集

    =======================基础命令======================= mongo 进入数据库操作界面db 查看当前使用的数据库show dbs 查看当前已经被创建出来的 ...

  8. 【开发笔记】-MySQL数据库5.7+版本,编码格式设置

    原因 昨天不小心把数据库搞崩了,重装了5.7.27版本得mysql数据库,在安装过程中并没有设置数据库默认编码格式等操作.在把项目启动后,jpa自动创建表结构,会把数据库,表,字段的编码自动设置为IS ...

  9. 【转载】C#通过Clone方法快速创建相同架构的DataTable

    在C#中的Datatable数据变量的操作过程中,如果需要克隆当前DataTable变量的结构,包括所有 DataTable 架构和约束等信息,可以使用DataTable中的Clone方法来实现,Cl ...

  10. window 10 npm install node-sass报错

    最近准备想用vue-cli初始化一个项目,需要sass-loader编译: 发现window下npm install node-sass和sass-loader一直报错, window 命令行中提示我 ...