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. Entropy Search for Information-Efficient Global Optimization

    目录 概 主要内容 的估计 的估计 Hennig P, Schuler C J. Entropy search for information-efficient global optimizatio ...

  2. CS5213设计HDMI转VGA带音频方案+设计电路|直接替代AG6200 AG6201

    台湾安格AG6200 AG6201专门用于设计HDMI转VGA带音频输出的方案芯片,CS5213是一款HDMI to VGA转换器且结合了HDMI输入接口和模拟RGB DAC输出.带支持片上音频数模转 ...

  3. PIC18 bootloader之CAN bootloader

          了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). PIC18 ...

  4. Storm集群开启HA高可用

    Storm开启HA高可用,包括Nimbus和UI开启两个及以上的进程. 基于已经安装好的Storm集群,开启关键节点角色的HA高可用. Storm安装请参考Storm集群安装Version1.0.1 ...

  5. Linux-saltstack-1 saltstack的安装与基本配置

    @ 目录 一.环境介绍 二.安装saltstack 1.配置安装yum源 2.安装salt-master 3.安装slat-minion 三.配置salt-master 1.指定master的地址 2 ...

  6. 读取 properties 配置文件含有中文的value内容 导致中文乱码 的解决办法

    1.前言 因为装系统的时候把中文写在了系统路径,现在我想把这个路径写在properties里面来读取,可是 发现java 读取会导致中文乱码成 问号????的乱码  ,百度找了好多博客,基本都是一摸一 ...

  7. 【Java】Super

    Super super用于调用父类的属性.方法.构造器,与this相同. super的使用 属性与方法 在子类的方法或构造器中.通过使用"super.属性"或"super ...

  8. 从头造轮子:python3 asyncio之 gather (3)

    前言 书接上文:,本文造第三个轮子,也是asyncio包里面非常常用的一个函数gather 一.知识准备 ● 相对于前两个函数,gather的使用频率更高,因为它支持多个协程任务"同时&qu ...

  9. 【刷题-LeetCode】238. Product of Array Except Self

    Product of Array Except Self Given an array nums of n integers where n > 1, return an array outpu ...

  10. 使用redis+lua实现SQL中的select intersect的效果

    公众号文章地址 1.需求 业务中需要实现在两个集合中搜索数据,并返回交集. 用SQL的伪代码可以描述如下: select key from set1 where sorted_key between ...