AGC 049 总结+ABCD题解

比赛链接

赛况:

202 Gary{\color{Yellow} \textrm{Gary} }Gary 1800(4)187:231800 (4)\\187:231800(4)187:23 40051:51400\\51:5140051:51 60048:32600\\48:3260048:32 800(4)167:23800 (4)\\167:23800(4)167:23 - - -

A - Erasing Vertices

这题想的方向错了就比较麻烦了。我一开始以为是上面DAG上dp。卡了一会,做完B题回来三分钟就会做了。

题解:

考虑一个节点TTT有多大的概率被选中,假设能到达TTT的点的集合为SSS。显然能选择TTT,必须TTT是SSS中第一个被选择的。则概率为1∣S∣\frac{1}{|S|}∣S∣1​。它被选择的期望次数为1∣S∣\frac{1}{|S|}∣S∣1​。则对答案的贡献为1∣S∣\frac{1}{|S|}∣S∣1​。

n<=100,可以处理出每一个点有多少点能到达它。

时间复杂度为O(n3)O(n^3)O(n3),其实也可以通过bitset优化到O(n3/64)O(n^3/64)O(n3/64)。

B - Flip Digits题解

本场比赛最水的题,基本上看了一眼就有了思路。但实现上每个人略有差异。

操作可以看作:

  • 消除两个连在一起的1
  • 将"01"变为"10",将一个1左移一位

可以发现S中的1为T中的1+2*x。

从后往前考虑,可以发现每一个1,要么往前去和T中的某一个1匹配,要么和前面的某一个1互相消除(肯定是最近的),要么停在原地等后面的来消除。

直接维护一个栈就好了。注意记录栈中元素的奇偶性。

C - Robots

这一题比较坑,你必须要想到step2的最优策略才可以决定step1怎么走。

首先我们将a[i],b[i]a[i],b[i]a[i],b[i]转换成l[i]和r[i]。表示第r[i]个机器人会从r[i]走到l[i] (如果不被消灭的话)。

若所有的l[i] 都>=1 ,则不管它们怎么弄都不会影响到0.则答案等于0

否则,若那些l[i]<=0的都会被其他l[i]>=1的消灭,则答案还是0

若没法全部消灭,则可能会向左延申一些机器人的l[i],向右延申一些机器人的l[i]。注意这些操作可以两两一组,算一次操作。

D - Convex Sequence

这题套路比较明显:维护差分的差分。

由于差分递增,所以差分的差分除了第二个都只需要满足>=0即可。

但是第二个是负数就不太好办了。

我们想一想这是什么造成的?

原因:2*a[2] < a[1]。

我们画一画图就可以发现,我们可以枚举最低点的位置,然后将它下移到0的位置就可以避免这个问题。

然后再分别计算两半的dp就可以了。每一部分是O(M×M)O(M\times \sqrt M)O(M×M​)

则最终对于第i个点的答案=∑j+k+x∗n=MLi−1,j∗Rn−i,k\sum_{j+k+x*n=M} L_{i-1,j}*R_{n-i,k}∑j+k+x∗n=M​Li−1,j​∗Rn−i,k​

这个像卷积一样的东西一开始把我卡了很久。由于要枚举上面的xxx。个数是M/NM/NM/N的,会TLE。

其实我们只需要把它放在一边就可以了。

∑j+k=MLi−1,j∗Rn−i,k−x∗N\sum_{j+k=M} L_{i-1,j}*R_{n-i,k-x*N}∑j+k=M​Li−1,j​∗Rn−i,k−x∗N​

这样时间复杂度为O(M×M)O(M\times \sqrt M)O(M×M​)

AGC 049 总结+ABCD题解相关推荐

  1. Codeforces Round #777 (Div. 2) ABCD题解

    A-Madoka and Math Dad 题目大意: 一个十进制数字(不含0),各个位上的和为n(n<=1000),且相邻位没有相同的数字,问这个数字最大可以是多少. 思路: 显然要使这个数字 ...

  2. Codeforces Global Round 11 ABCD题解

    真阴间啊 , 不仅时长阴间, 题目也有点emmmmm 打的不顺利,没有按预想在15分钟内把AB题写出来 ((。・∀・)ノ゙害) 开局码了发A WA2 人傻了 开始质疑自己了 先搁着吧 然后又码了一个半 ...

  3. Codeforces Round #695 (Div. 2)ABCD题解详析

    A. Wizard of Orz 首先保证第一块板子是999,那么第二块板子不可能是999,那么令第二块板子为888 只要在第二块板到达888的时候按下暂停,那么第一块是999,第三块板子也是999 ...

  4. Codeforces Round #250 (Div. 2) (ABCD题解)

    比赛链接:http://codeforces.com/contest/437 A. The Child and Homework time limit per test:1 second memory ...

  5. Codeforces Round #770 (Div. 2) ABCD题解

    A. Reverse and Concatenate 思路: 答 案 要 么 1 要 么 2 答案要么1要么2 答案要么1要么2 等 于 1 的 必 要 条 件 是 反 转 之 后 是 它 本 身 等 ...

  6. 面向考研的数据结构板子

    数据结构板子 考研复习对着书看了一遍数据结构之后总觉得缺了点什么,正好以前打比赛的板子也找不到了,就在这写一点数据结构的基础板子找找手感,举的例子也都是一些简单题,希望能对复习有所帮助.我在写板子的时 ...

  7. scau数据结构习题

    18708 最大子段和 时间限制:1000MS 代码长度限制:10KB 提交次数:0 通过次数:0 题型: 编程题 语言: 不限定 Description 一个整数序列,选出其中连续且非空的一段使得这 ...

  8. Codeforces Round #182 (Div. 1)题解【ABCD】

    Codeforces Round #182 (Div. 1)题解 A题:Yaroslav and Sequence1 题意: 给你\(2*n+1\)个元素,你每次可以进行无数种操作,每次操作必须选择其 ...

  9. 【牛客OI周赛7-普及组ABCD 非官方题解】暴力,二分,KMP,尺取(STL或Hash)

    A: 链接:https://ac.nowcoder.com/acm/contest/372/A 来源:牛客网 某天,一只可爱的肥橘喵在路上走,突然遇到了一个怪人,那怪人自称PM6,"小肥喵, ...

最新文章

  1. 计算机生物学杂志,基因组学与应用生物学杂志
  2. [BUUCTF-pwn]——warmup_csaw_2016
  3. 【Transformer】DETR: End-to-End Object Detection with Transformers
  4. Hibernate写hql语句与不写hql语句的区别?
  5. python defaultdict 类属性_Python collections.defaultdict模块用法详解
  6. json字符串、json对象、数组之间的转换
  7. 周鸿祎重申360不依靠弹窗广告盈利 增值服务是主要模式
  8. linux 线程的基本知识
  9. 三段式状态机原理详细解释
  10. 三星PM981(a)硬盘安装黑苹果(第五版)
  11. 和我一起打造个简单搜索之Logstash实时同步建立索引
  12. H桥电机驱动基本原理
  13. word数学公式快捷键-高效率办公技能get
  14. 怎么修改u盘的图标 如何修改移动硬盘图标
  15. bat怎么发起网络请求_批处理命令教程之网络入侵
  16. 论文介绍 -- Rethinking the Evaluation of Video Summaries
  17. 郝小亮-读王坚《在线》:互联网能做的和没做的事还有很多
  18. php 浏览商品足迹,iwebshop调取浏览足迹方法
  19. Android视角,精妙绝伦的回调方法
  20. 数据归一化和代码实现

热门文章

  1. 用三种方法求三个正整数的最大公约数和最小公倍数(python3)。
  2. idea创建动态web项目打开jsp文件报404问题
  3. 关于对中医现状的想法
  4. google pinyin 如何打出顿号
  5. html 清空属性,html清除元素基本属性
  6. mac利用vnc远程连接服务器ubuntu16出现灰屏和鼠标变黑色x的解决方法
  7. 安装docker报错 Requires: fuse-overlayfs >= 0.7
  8. 【转载】让DIV的滚动条自动滚动到最底部的3种方法
  9. 【读书笔记】代码大全34章:软件工艺主题
  10. 列表视图(ListView)和ListActivity——ArrayAdapter