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. 整理:WPF中XmlDataProvider的用法总结

    原文:整理:WPF中XmlDataProvider的用法总结 一.目的:了解XmlDataProvider中绑定数据的方法 二.绑定方式主要有三种: 1.Xaml资源中内置: <!--XPath ...

  2. c# .netcore oracle连接工具类

    1.先右键->添加NeGet包->引入Oracle.ManagedDataAccess.dll 2.将该类加入项目中 工具类: using System; using System.Col ...

  3. c# 基本类型存储方式的研究

    基本单位 二进制,当前的计算机系统使用的基本上是二进制系统.二进制的单位是位,每一位可以表示2个数: 0或1.byte(字节) 有8位,可以表示的数为2的8次方,即256个数,范围为[0-255]. ...

  4. React 根据条件自动计算

    1.输入框 <Item {...formItemProps} label="留房日期"> {getFieldDecorator('date', { rules: [{ ...

  5. ex_gcd求不定方程的最小正整数解

    #include<bits/stdc++.h> using namespace std; int gcd(int a,int b) {return b?gcd(b,a%b):a;} int ...

  6. Java自学-接口与继承 抽象类

    Java 抽象类 在类中声明一个方法,这个方法没有实现体,是一个"空"方法 这样的方法就叫抽象方法,使用修饰符"abstract" 当一个类有抽象方法的时候,该 ...

  7. HTTP发展简史

    HTTP发展简史 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的 ...

  8. 巧记 In/hasOwnProperty/for…in/for…of/forEach区别

    写在前面 上面提到的这些东西,反复的记忆,反复的忘记.现分享一种巧记方法,有需要,请参考,希望你也过目不忘. 仅提供巧记思路.仅提供巧记思路.仅提供巧记思路. 1. in 用于判断属性是否在对象上(包 ...

  9. element-ui 上传图片或视频时,先回显在上传

    <el-upload class="upload-demo" ref="vidos" :action="URL+'/api/post/file' ...

  10. APP开发基础知识(转载)

    来源:https://www.cnblogs.com/wangsea/p/9413672.html 本文针对小白用户对App做一个简单的介绍,首先要了解App都有哪些类型,不同的类型适用于哪些需求,用 ...