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. Codeforces 567C:Geometric Progression(DP)

    time limit per test : 1 second memory limit per test : 256 megabytes input : standard input output : ...

  2. Oracle 11g安装和PL/SQL连接完全解读(连接本地数据库)

    Oracle安装是很多新手都烦恼的事情,各种奇怪的错误,并且还无从下手解决.我也隔了两年没有用Oracle了,昨天安装了一下,出现很多问题,也很苦恼.现在将安装过程详细记录下来,一来方便自己下次安装, ...

  3. gojs 如何实现虚线(蚂蚁线)动画?

    在绘制 dag 图时,通过节点和来箭头的连线来表示节点彼此之间的关系.而节点常常又带有状态,为了更好的表示节点之间的流程关系,loading 状态的节点,与后续节点之间,需要用 动画着的虚线 表示,表 ...

  4. Java初学者作业——编写Java程序,简单判断“王者荣耀”英雄收到攻击后是否死亡

    返回本章节 返回作业目录 需求说明: 判断"王者荣耀"中英雄受到攻击后是否死亡? 计算"王者荣耀"中怪物攻击英雄的伤害,做出英雄死亡的判断. 如果英雄受到过量伤 ...

  5. Java面向对象笔记 • 【第3章 继承与多态】

    全部章节   >>>> 本章目录 3.1 包 3.1.1 自定义包 3.1.2 包的导入 3.1.3 包的访问权限 3.1.4 实践练习 3.2 继承 3.2.1 继承概述 3 ...

  6. AWS 15年(2):云原生兴起

    AWS创立云计算15年来,没有一个行业不跟云计算相关,没有任何一个颠覆性创新缺少云计算的参与,云已经是不可逆的滚滚洪流. AWS这15年,是云原生服务从无到有再到基本成熟的15年,是云原生应用兴起的1 ...

  7. 使用uiautomatorviewer,查看app页面元素,进行元素定位

    环境搭建: 安装adt,安装成功后,就可以在adt路径下的tools文件夹中找到uiautomatorviewer.bat 用来做什么? uiautomatorviewer.bat是用来扫描和分析An ...

  8. JMeter_实现算法加密

    JMeter有两种方法可以实现算法加密 一.使用__digest自带函数      参数说明: Digest algorithm:算法摘要,可输入值:MD2.MD5.SHA-1.SHA-224.SHA ...

  9. 关于 this.$route.meta.operations.includes('delete') 取不到值的问题

    原因是:src/mock/api/sys.login.js中定义的路径 要与src/router/modules/下定义的路由要一致 作用this.$route.matched可以查看匹配信息 来自为 ...

  10. Spark词频前十的统计练习

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6815390070254600712/ 承接上一个文档<Spark本地环境实现wordCount单词计数> ...