随笔分类 - CF
摘要:传送门 1 /* 2 思路:把 a1 + a2 + ... + an >= x * (r - l + 1) 3 > a1 + a2 + ... + an - x * (r - l + 1) >= 0 4 可以等价为对于每个(ai - x) 得到新的ai,则题目变为对于任意区间[l, r], al +
阅读全文
摘要:传送门 思路: 从k = 2 * x - y ==> 2 * x = k + y ,可以看出x是k,y的中间值,则如果存在x1,x2,且x1 = x2 ± 1,则通过x1,x2可以得到所有整数,则任意的k都成立。 例如:2 3 > 2 3 4 > 1 2 3 4 ...... 对于该数组A: (0
阅读全文
摘要:传送门 注:把大于m的ai自身看作没有价值,即价值为0 补:图中方块长度为4是错的,应该是3.即20覆盖0 0 0 18覆盖 1 2 2 17覆盖2 4 5 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #inc
阅读全文
摘要:传送门 思路:我们需要满足 x + y > z , x + z > y , y + z > x .因为 A <= X <=B <= Y <= C <= Z <= D,所以 X + Z > Y和 Y + Z > X明显一定满足,所以我们只需要确定X + Y > Z的个数了.X∈[A,B],Y∈[B,C
阅读全文
摘要:传送门 思路:对于一般情况,我们有三个袋子,容易想到把袋子里物品的价值排序。然后贪心,我们想让最后的价值最大,则三个袋子最后都可以剩余一个物品,这三个物品总和需要最大,最好的情况就是三个物品的符号“+”,“-”,“-”,这样总价值直接可以算是每个袋子中物品绝对值的累加和。为了让三个物品价值最大,我们
阅读全文
摘要:传送门 思路:“Dreamoon will choose a number pipi from range [1,n−li+1](inclusive) and will paint all cells from pipi to pi+li−1(inclusive) in ii-th color.”可
阅读全文
摘要:传送门 题目:简单理解就是,我们需要开车从s点到t点。车上有一个导航,如果当前点为x,则导航会自动为你提供一条从x到t的最短的路线(如果有多条,则随机选一条),每走到下一个点则会实时更新最短路线,当然,如果你按着之前提供的路线走到下一个点,则路线不会更新。题目提供一条确定的路线,如果按着提供的路线走
阅读全文
摘要:传送门 思路: 我们知道b = [a, a + m], 我们需要满足Gcd(a, m) = Gcd(b, m), 假设g = Gcd(a, m),那么Gcd(a, m) = Gcd(a + k * g, m)(a + k * g ∈ b),两边同除以g, Gcd(a / g, m / g) = Gc
阅读全文
摘要:思路: 设tx为t类别字符的个数。 ①对于长度小于2的t明显是"YES"②对于字符类别只有1个的t明显是"YES"③对于字符类别有2个的t,如左上图:如果str[l] != str[r],那么我们构造的t也应该是str[l] != str[r],且s字串和t的str[l]和str[r]是相反的,即如
阅读全文
摘要:传送门 思路: 我们需要抓住唯一的重要信息点"ci",我的做法也是在猜想和尝试中得出的,之后再验证算法的正确性。 我们在构造中发现,如果树上出现了相同的数字,则会让树的构造变得不清晰。 我们尝试用不同的数值a[1]~a[n]去构造树,我们唯一知道的信息就是"ci",如果a[1]~a[n] = 1~n
阅读全文
摘要:传送门 样例(x): 8 15 16 17 19 27 36 29 33 结果(t1) 15 15 16 18 26 35 28 32 思路:我们可以把最左端和最右端当做两个水龙头,每个水龙头流量的上限就是a[x]. 我们通过贪心,我们尽可能的使用左边的流量,例如样例(x),我们流到第二个点的时候,
阅读全文
摘要:传送门 思路:根据三角形性质,我们容易得到: a + gcd(a, b)^2 > b a + b > gcd(a, b)^2 b + gcd(a, b)^2 > a 推出: a - b < gcd(a, b)^2 < a + b ① 假设a为偶数,可以得到 a + 2或者a - 2与a配对一定满足
阅读全文
摘要:传送门 题目:给定两个整数u和v,找到最短的数组,使其满足:该数组的(xor)和为u,累加和为v。 思路:我们组成的数组累加和为v,我们可以用二进制表示v,我们知道(xor)会导致相同位为0。我们可以利用前面的内容,拆分v每一位上的信息,例如"100",我们可以拆成两个"010",我们可以用一个数组
阅读全文
摘要:传送门 题目:给定一颗无边权的树,你需要对每条边添加任意大于0的数值。对于树上的任意一条链,对链上的所有边进行(xor)操作后数值为0。你最多和最少可以添加不同的边权。 思路: ①最少:我们可以发现,如果任意两个叶子结点间的边为偶数,则我们只需要用"1"就行。如果出现了偶数,则我们只需要用"1","
阅读全文
摘要:传送门 题目: Dreamoon likes sequences very much. So he created a problem about the sequence that you can't find in OEIS: You are given two integers d,m fin
阅读全文
摘要:传送门 题目:给定一个数n,问(0~n)相邻两个数之间二进制位不同个数的总和。 思路:看出规律,把n转化为二进制,如果该二进制位处于第x位且为1,则它的贡献为2^(x) - 1,累加所有贡献即可。 1 #include<iostream> 2 #include<string> 3 #include<
阅读全文
摘要:传送门 题目:给定n个长度为m的"0""1"串,你可以改变任意一个位置的二进制,使得边长为偶数的任意一个子矩阵中"1"的个数为奇数,如果不可能输出"-1",可能的话,最少需要改变几个位置的二进制。 思路:硬想太难想。。。(对我来说),然后自己构造了下边长为2,4,6的矩阵,推出一个性质,边长为4的子
阅读全文
摘要:传送门 题目:给定长度为n的数组a,A和B轮流拿走一个数,开始时A和B拥有的v为0,A和B每次拿走一个数时,他的v = v^ ai,A和B都很聪明,问都按照最优的情况考虑,拿完所有数之后A和B的v的大小。 思路:我们可以想到二进制的高低位性质,所以一个人如果有一个最高位二进制为1而另外一个人是0,则
阅读全文
摘要:传送门 思路:如果给定的字符串中,存在一个下标出现了不同的字符,说明这个地方一定只能存在两种字符,如果某个字符在当前位置被改变,则该字符串之后的字符都要相同,然后我们就可以按照这个想法组成一个字符串,然后让这个字符串去和所有字符串比较,相同位置最多出现一个不同的字符("字符串长度为1"和"所有字符串
阅读全文
摘要:传送门 题意:给定一个n*m的地图,'.'空地,'#' 墙,'G'好人, 'B'坏人。问你存不存在一种方案,把若干空地变成'#'(人不能通过墙),使得所有好人能逃离地图,所有坏人不能逃离地图。(n,m)为出口,人存在的地方不能设置'#',保证出口一开始是空地。 思路: ① G == 0 Yes。 ②
阅读全文

浙公网安备 33010602011771号