A.

尛你 \(\%\%\%\)

B.

题意:你需要在平面上画 \(n(n \le 10 ^ 9)\) 个 \(1 \times 1\) 的正方形,且顶点都在整点上,每次可以画一条长度为 \(1\) 的线段,画过的线段可以新生成一条并且可以平移(跟原线段构成矩形的对边)且不算画的数量,问最少需要画多少次。

首先我们发现我们画的线段数量其实是整个大图形的水平宽度加长度,那么根据均值不等式画的越正越优,因此我们从一个正方体开始不断往上累加拼成大正方体这样一定最优,打个表发现答案应该是 \(2 \ 3 \ 4 \ 4 \ 5 \ 5 \ 6 \ 6 \ 6 \ 7 \ 7 \ 7 \ 8 \ 8 \ 8 \ 8 \cdots\) 不难发现相同答案的长度从 \(1\) 开始一次递增每次加一,并且每段重复两边,于是可以使用等差数列求和直接输出答案了。

C.

题意:给你一串长度为 \(n(n \le 200)\) 的字符串,由小写字母,\(*\) 和 \(?\) 组成,保证每个 \(*, ?\) 之前都有一个小写字母。给定一个 \(k\) 你需要构造一个长度为 \(k\) 的字符串,满足下列条件:

如果在原序列中后面没有 \(*, ?\) 那么这个字符必须留下来。

\(*\) 前的字符可以留下也可以不留下,或者能重复若干次写入你构造的序列。

\(?\) 前的字符可以留下也可以不留下。

首先我们判断不合法的情况,如果必须保留的字母数量大于 \(k\) 显然不可能,如果没有 \(*\) 且字母数量小于 \(k\) 显然不可能。剩下的情况我们直接把 \(?\) 前面的字母全不加进来,随意选一个 \(*\) 之前的字母重复放入知道满足条件即可。

D.

题意:给定一颗大小为 \(n(n \le 10 ^ 5)\) 的树,每个点有非负点权,我们定义一个点的 \(s_u\) 为 \(u\) 到根节点的点权之和。现在你只知道奇数层的 \(s_u\),需要你构造出每个点的点权满足条件且所有点点权和最小。

首先判断不合法的情况,对于任意一个点 \(u\) 如果在 \(u\) 的子树内存在一点 \(v\) 满足 \(s_v > s_u\) 那么显然不合法。接下来我们有一个贪心,每个不确定的点放点权为 \(0\) 但这样是错的,因为我们越往上放点权所需要的花费最小,那么我们就只需要把能往上放的点权尽可能往上放即可,即对每个不确定的点 \(u\) 放 \(\min{s_v - s_{fa}}, v, fa\) 是 \(u\) 的儿子和父亲,对每个确定的点放 \(s_u - s_{fa}\) 就一定可以保证答案最小。

E.

题意:给你一个 \(n \times m(n \times m \le 3 \times 10 ^ 5)\) 的矩阵,由 \(A, G, C, T\) 组成,现在问你最少需要改变多少个位置,使得每个 \(2 \times 2\) 的矩阵中都恰好包含 \(A, G, C, T\) 四种字符。

首先我们假设确定了左上角一个 \(3 \times 2\) 的矩阵,那么我们就能把整个矩阵推出来,显然我们直接暴力枚举这个 \(3 \times 2\) 的矩阵就可以做了,但还可以跑得更快,只需要枚举左上角 \(2 \times 2\) 的矩阵,那么第三行的前两个元素就一定和第一行的前两个元素相同,这样枚举的复杂度可以降到 \(4! \times 2 = 48\)。注意特判 \(n = 2\) 的情况。

F.

题意:给你一颗大小为 \(n(n \le 10 ^ 5)\) 的有根树,每个节点上有一些饼干,第 \(i\) 个节点上有 \(x_i\) 块饼干,小 \(A\) 在第 \(i\) 个节点上吃一块饼干需要花费 \(t_i\) 的时间。现在小 \(S\) 想阻止小 \(A\) 继续吃饼干,最开始小 \(A\) 在 \(1\) 号点,每次小 \(A\) 可以往当前点的任意一个儿子走,接着小 \(S\) 会摧毁当前小 \(A\) 所在节点和一个儿子之间的连边。最终小 \(A\) 可以选择在任意一个点停下,她会沿着先前的路径回到 \(1\) 号点并吃掉一些饼干,要求小 \(A\) 走到一个点,回去,吃饼干的总时间不超过 \(T\) 问小 \(A\) 最终最多能吃到多少饼干。小 \(A\) 和小 \(S\) 每次都会进行当前的最优操作。

首先小 \(A\),小 \(S\) 都会进行最优操作,那么小 \(S\) 一定会找到一个最优的儿子然后把边删掉,那么小 \(A\) 每次就只能选择次优的儿子。那么我们可以直接 \(dp\),令 \(dp_i\) 为在 \(i\) 子树内的点包括 \(i\) 停止返回能吃到的最多饼干。那么每次我们就直接从儿子的最大值转移即可,而到点 \(i\) 直接折返的答案我们显然可以直接贪心吃这条路径上花费时间最小的饼干,这个答案可以使用权值线段树二分来做。最终答案就是 \(dp_1\),要注意的是小 \(A\) 是先手,那么在 \(1\) 号点一定会往最优的儿子走。

CF Round #530 Div2的更多相关文章

  1. CF Round #580(div2)题解报告

    CF Round #580(div2)题解报告 T1 T2 水题,不管 T3 构造题,证明大约感性理解一下 我们想既然存在解 \(|a[n + i] - a[i]| = 1\) 这是必须要满足的 既然 ...

  2. CF round #622 (div2)

    CF Round 622 div2 A.简单模拟 B.数学 题意: 某人A参加一个比赛,共n人参加,有两轮,给定这两轮的名次x,y,总排名记为两轮排名和x+y,此值越小名次越前,并且对于与A同分者而言 ...

  3. [CF Round #295 div2] C. DNA Alignment 【观察与思考0.0】

    题目链接:C. DNA Alignment 题目大意就不写了,因为叙述会比较麻烦..还是直接看英文题面吧. 题目分析 经过观察与思考,可以发现,构造的串 T 的每一个字符都与给定串 S 的每一个字符匹 ...

  4. [CF Round #294 div2] E. A and B and Lecture Rooms 【树上倍增】

    题目链接:E. A and B and Lecture Rooms 题目大意 给定一颗节点数10^5的树,有10^5个询问,每次询问树上到xi, yi这两个点距离相等的点有多少个. 题目分析 若 x= ...

  5. [CF Round #294 div2] D. A and B and Interesting Substrings 【Map】

    题目链接:D. A and B and Interesting Substrings 题目大意 给定26个小写字母的权值,一共26个整数(有正有负). 给定一个小写字母组成的字符串(长度10^5),求 ...

  6. A. Grasshopper And the String(CF ROUND 378 DIV2)

    A. Grasshopper And the String time limit per test 1 second memory limit per test 256 megabytes input ...

  7. A. Alyona and Numbers(CF ROUND 358 DIV2)

    A. Alyona and Numbers time limit per test 1 second memory limit per test 256 megabytes input standar ...

  8. CF Round#436 div2

    额,这次的题目其实挺智障的.所以通过这次比赛,我也发现了自己是一个智障.... 不说太多,说多是泪... A. Fair Game 题意:给你一个数组,看你能否把它均分为两个所有元素均相同的子数组. ...

  9. CF Round #569 Div2(contest1180)

    比赛链接:http://codeforces.com/contest/1180 Problem A 题意:给出n,问方块数.看图理解... Solution: 找一找规律就可以了,发现方块数为2n*( ...

随机推荐

  1. 【嵌入式】keil不识别野火高速dap的问题

    解决方法:https://www.firebbs.cn/thread-28093-1-1.html

  2. Chapter 20 Treatment-Confounder Feedback

    目录 20.1 The elements of treatment-confounder feedback 20.2 The bias of traditional methods 20.3 Why ...

  3. Linux学习笔记-韩顺平

    这是我学习哔哩哔哩UP主韩顺平的2021韩顺平图解Linux课程的学习笔记. 课程地址:2021韩顺平图解Linux课程 Linux基础篇-Linux目录结构 基本介绍 linux 的文件系统是采用级 ...

  4. 从零开始学springboot-1.创建项目

    新建一个项目 添加依赖 点击完成,项目结构如下 手动添加以下依赖 打开pom.xml文件,手动添加以下依赖,用于自动生成代码 <dependency> <groupId>com ...

  5. 一文让你明白Redis持久化(RDB、AOF)

    为什么要持久化 Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘中,那么一旦服务器进程退出,服务器的数据库状态就会消失(即断电即失).为了保证数据不丢失,我们需要将 内存中的数据存储到磁盘 ...

  6. 《手把手教你》系列技巧篇(五十四)-java+ selenium自动化测试-上传文件-中篇(详细教程)

    1.简介 在实际工作中,我们进行web自动化的时候,文件上传是很常见的操作,例如上传用户头像,上传身份证信息等.所以宏哥打算按上传文件的分类对其进行一下讲解和分享. 2.为什么selenium没有提供 ...

  7. 前端如何低门槛开发iOS、Android、小程序多端应用

    现如今跨平台开发技术已不是什么新鲜话题了,在市面上也有一些开源的框架可供选择,然而技术成熟.产品服务健全的平台并不多,其中也不乏推陈出新的框架值得关注. 比如最近使用的AVM,由APICloud迭代推 ...

  8. Python+flask+flask-apscheduer实现定时下发任务

    Python+flask+flask-apscheduer实现定时下发任务 背景: 使用python+flask+mamaca实现的自动化用例管理平台,可以下发任务到具体的节点,进行执行测试用例,没有 ...

  9. Selenium_获取元素文本、属性值、尺寸(8)

    from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get(" ...

  10. centos7 配置JDK

    // 查看是否有jdk  rpm -qa | grep java 卸载掉系统自带的jdk(箭头标识),命令:rpm -e --nodeps  后面跟系统自带的jdk名 比如:rpm -e --node ...