随笔分类 -  Codeforces

摘要:一、题目 D. Yet Another Subarray Problem 二、分析 公式的推导时参考的洛谷聚聚们的推导 重点是公式的推导,推导出公式后,分块是很容易想的。但是很容易写炸。 1 有些地方容易溢出,这和设置的无穷大的值的大小也有关。 2 如果每次确定了边界$r$,那么在枚举$m$的余数的 阅读全文
posted @ 2019-08-09 17:13 Dybala21 阅读(125) 评论(0) 推荐(0)
摘要:一、题目 OpenStreetMap 二、分析 对于二维空间找区间最小值,那么一维的很多好用的都无法用了,这里可以用单调队列进行查找。 先固定一个坐标,然后进行一维的单调队列操作,维护一个区间长度为$b$的最小值,可以确定一个数组$ans$。 对于新数组,进行另一个维度的单调队列操作,找到$a*b$ 阅读全文
posted @ 2019-08-09 15:33 Dybala21 阅读(149) 评论(0) 推荐(0)
摘要:一、题目 D2. RGB Substring (hard version) 二、分析 思路一开始就想的对的,但是,用memset给数组初始化为0超时了!超时了! 然后我按照题解改了个vector初始化,就过了! 以后得谨慎使用memset了。 三、AC代码 阅读全文
posted @ 2019-07-26 14:54 Dybala21 阅读(126) 评论(0) 推荐(0)
摘要:一、题目 D2. Submarine in the Rybinsk Sea (hard edition) 二、分析 相比于简单版本,它的复杂地方在于对于不同长度,可能对每个点的贡献可能是有差异的。 但是,题目已经说明$a_{i}$最大知道10的9次方,那么$a_{i}$的长度最大也只有10,所以,我 阅读全文
posted @ 2019-07-18 15:15 Dybala21 阅读(310) 评论(0) 推荐(0)
摘要:一、题目 D1. Submarine in the Rybinsk Sea (easy edition) 二、分析 简单版本的话,因为给定的a的长度都是定的,那么我们就无需去考虑其他的,只用计算ai的值在每个位置的贡献即可。 因为长度是定的,如果ai在前,那么对所有的a的贡献就是在偶数位的贡献值然后 阅读全文
posted @ 2019-07-18 15:09 Dybala21 阅读(218) 评论(0) 推荐(0)
摘要:一 题面 C. Match Points 二 分析 根据题意很容易想到要去找满足条件的数,因为可以打乱输入的顺序,所以很容易想到二分。 但是如果直接对输入的数组进行二分,如输入$a$,直接在数组里二分找$a+z$,就会出现不是最优解的情况,例如: $4\ 8\ 9\ 12$ 其中$z = 4$ 如果 阅读全文
posted @ 2019-05-02 12:02 Dybala21 阅读(241) 评论(0) 推荐(0)
摘要:一 题面 D. N Problems During K Days 二 分析 对于这题,刚开始我就是陷入了对公式的执着,企图用公式直接确定第一个数,然后试着去找序列。经过思考和手动模拟后发现是很难保证正确性的。 对于这题,第一步是很明确的,就是确定第一个数,如果给定了$N$和$K$,那么第一个数是可以 阅读全文
posted @ 2019-04-27 20:34 Dybala21 阅读(235) 评论(0) 推荐(0)
摘要:一 题面 C2. Increasing Subsequence (hard version) 二 分析 需要思考清楚再写的一个题目,不能一看题目就上手,容易写错。 分以下几种情况: 1 左右两端数都小于等于构造的数组的最后一个数字 2 左右两端数至少有一个大于构造的数组最后一个数字 a. 左右两端数 阅读全文
posted @ 2019-04-27 16:29 Dybala21 阅读(393) 评论(0) 推荐(1)
摘要:一 题面 E. Minimum Array 二 分析 注意前提条件:$0 \le a_{i} \lt n$ 并且 $0 \le b_{i} \lt n$。那么,我们可以在$a_{i}$中任取一个数进行分析,发现为满足字典序最小,在$b$中找到$n-a_{i}$就是最优解。 接下来分析$b$,在$b$ 阅读全文
posted @ 2019-04-27 12:58 Dybala21 阅读(371) 评论(2) 推荐(0)
摘要:一、题面 链接 二、分析 关于这题,两个点。 第一个点,是需要能够分析出$[L,R]$区间的3的余数的个数。 首先,可以得到,$[L,R]$区间内共有$(R-L+1)$个数。 设定余数为0,1,2的为一组,那么1,2,0和2,0,1也是一组。那么可以肯定能得到$(R-L+1)/3$组。 那么还余下了 阅读全文
posted @ 2019-01-25 14:00 Dybala21 阅读(140) 评论(0) 推荐(0)
摘要:一、题面 题目链接 二、分析 该题注意读题的时候有强调边的权值为非负(即可以为0),此题就是求树两个叶子节点之间的最短距离。为了使两个叶子节点之间的距离最短,那么其实就是让每个最后到叶子的那条路径尽量去平摊更多的权值,因为只有这样才能保证最长的哪个路径值是最小的。相当于除了到叶子的路径,其他路径权值 阅读全文
posted @ 2018-12-24 22:43 Dybala21 阅读(120) 评论(0) 推荐(0)
摘要:一、题面 题目链接 二、分析 这题的关键是要确定一个点是从三个点出发的交汇点,其他的只要结合曼哈顿距离的定义即可明白。因为是三个点,这个交汇点的坐标分别对应的就是x,y值的中值。然后一个小技巧就是曼哈顿距离的输出,两种情况对应两种while循环,等于的情况刚好退出循环。 三、AC代码 1 #incl 阅读全文
posted @ 2018-12-24 21:58 Dybala21 阅读(239) 评论(0) 推荐(0)
摘要:一、题面 题目链接 二、分析 该题就是一个字符串的还原。长度为奇数时从左边开始,长度为偶数时从右边开始。 三、AC代码 1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 6 int main() 7 { 8 //freopen("inpu 阅读全文
posted @ 2018-12-24 21:02 Dybala21 阅读(162) 评论(0) 推荐(0)
摘要:一、题面 题目链接 二、分析 一个简单的数学题目,这里首先要把x分解了看 $x = kd + c$ 这样原问题中的n就变成了 $n = dc$ 上面这个式子中,c因为是x除k取余得到的,那么可以肯定 $c < k$ 有了这个式子,就可以直接暴力去试满足条件的c,并且最小的d就可以满足x的最小值。 三 阅读全文
posted @ 2018-12-24 20:48 Dybala21 阅读(153) 评论(0) 推荐(0)
摘要:题目: Mr. F has nn positive integers, a1,a2,…,an. He thinks the greatest common divisor of these integers is too small. So he wants to enlarge it by rem 阅读全文
posted @ 2018-09-23 10:20 Dybala21 阅读(155) 评论(0) 推荐(0)
摘要:题目: There are nn points on the plane, (x1,y1),(x2,y2),…,(xn,yn)(x1,y1),(x2,y2),…,(xn,yn). You need to place an isosceles triangle with two sides on th 阅读全文
posted @ 2018-09-23 10:05 Dybala21 阅读(226) 评论(0) 推荐(0)
摘要:题目: 题目: Little C loves number «3» very much. He loves all things about it. Now he has a positive integer nn. He wants to split nn into 3 positive inte 阅读全文
posted @ 2018-09-23 09:49 Dybala21 阅读(125) 评论(0) 推荐(0)