随笔分类 - Codeforces
摘要:题目链接 B: 水题,从头累加,超过s时输出遍历过的最大值的位置即可 C: 读懂题也是水题,记录当前最大的下标与已经去掉的数量,维护即可 #include<bits/stdc++.h> using namespace std; #define ms(x,y) memset(x, y, sizeof(
阅读全文
摘要:题目链接 C: 本题可以直接暴力求解,类比八皇后问题,使每个点分别对应一个值,分别判断有几条边能够满足即可 #include<bits/stdc++.h> using namespace std; #define ms(x,y) memset(x, y, sizeof(x)) #define low
阅读全文
摘要:题目链接 B: 边最少点最多的方式是2个点一条边,不连通,边最多点最少的方式是完全图,边数为$n*(n-1)/2$ #include<bits/stdc++.h> using namespace std; #define ms(x,y) memset(x, y, sizeof(x)) #define
阅读全文
摘要:题目链接 A: 数据范围为100,可以直接O(n^2)暴力,对于s中每一个字符,分别替换为小写、大写、数字,然后贪心检验,若更改每一个都不符合,则随便更改3个字符,分别为小写、大写、数字即可 #include<bits/stdc++.h> using namespace std; #define m
阅读全文
摘要:题目链接 题解:经典的树形DP,跑两遍即可,第一遍记录出每个点为根时向下所能构成的最大的值(cnt_-cnt_),第二遍统计出每个点为根时的答案,此时的根包括其父,所以在第二次dfs时要减去再回溯 #include<bits/stdc++.h> using namespace std; #defin
阅读全文
摘要:"题目链接" 每一次选择$a_i / a_i 1$都会对以后的选择有影响, 那就是经典的DP问题, 找最优子结构, 设$dp_{i,j}$为已经经过$i$次, 有$j$次选择了$a_i 1$的最优次数, 设$sum_i=\sum_0^i a_i$, 得到状态转移: $dp_{i+1, j} = ma
阅读全文
摘要:"题目链接" 这种类型题大多都是移项, $a_i + a_j b_i + b_j (i b_j a_j (i C_i (i using namespace std; define ms(x,y) memset(x, y, sizeof(x)) define lowbit(x) ((x)&( x))
阅读全文
摘要:"题目链接" 最大最小, 很容易想到二分答案, 并且可以贪心验证, 复杂度为$O(NlogN)$, 无视L, 每次选择最远的R作为新的起点进行贪心验证即可
阅读全文
摘要:"题目链接" ~~组合学得好, 玄学少不了~~, 本题的关键点在于除了一个数可以出现2次, 每个数都只能出现一次, 那就是说选定了数字就选定了顺序, 我们只需找到如何选择数字即可 因为有一个重复, 那就从$m$中选择$n 1$个, 即$C^{n 1}_{m}$, $n 1$个中除了最大值, 要选择出
阅读全文
摘要:"题目链接" 考虑二进制, 若满足条件, 那么二进制位数每一位都$≤1$, 例如0 1 3, 对应的二进制为0, 1, 11, 这样末尾有2个1, 不满足条件, 若为0 1 2, 对应的二进制为0, 1, 10, 满足条件, 使用短除法很容易扩展到k进制
阅读全文
摘要:"题目链接" 每个$a_i$都会与他后面的相加再异或, 每对数只加一次, 用树状数组可以优化,保证每一对只加一次, 根据异或的特点,我们可以按照2进制位数进行计算,分别计算每一位的情况即可
阅读全文
摘要:"题目链接" 本题可以贪心,假设满足条件, 遍历串, 当'('的数量大于')'时, 接下来一定能够不交换合法, 如果')'数量大于'('时, 就一定需要交换顺序, 注意特判')('这种情况即可
阅读全文
摘要:"题目链接" 题意:给你两个向量,相乘得到$n m$的矩阵,求有多少个子矩阵,满足所有元素都为1,且数量为$k$ 数据范围是4e4, 那么$O(n^2)$算法肯定不行, 分析知, 若列矩阵有0, 那么乘出的矩阵该列都为0, 那我们可以先将$k$分解, 然后前缀和优化列是否满足条件
阅读全文
摘要:"题目链接" ~~mathforces round~~ "Gauss's lemma" ) 说人话就是,高斯引理的多项式目,就是两个本原多项式(primitive polynomial)的乘积还是本原多项式,而本原多项式就是$f(x) = a_0 + a_1x + \dots + a_{n 1}x^
阅读全文
摘要:"题目链接" 给定一个串,问以长度k反转串,求字典序最小的k值 假定有一个串$s_{1}s_{2}..s_{n}$, 长度k反转一次, 有$s_{k}s_{k 1}..s_{1}s_{k+1}s_{k+2}..s_{n}$, 以此类推,第二次, $s_{k}s_{k+1}s_{1}..s_{k 1}
阅读全文
摘要:"题目链接" 题意,给你一个数组,求$\prod_{1\le im$, 一定存在$a_i, a_j$, 使得$|a_i a_j|$一定能被$m$整除
阅读全文
摘要:"题目链接" 给你一个只包含'(',')'的串,匹配的串为可行串,问最少几次去掉几个可行串,能使得剩下的串无法再去掉其他串 贪心可解,双指针,最左的一定和最右的匹配,这样就能保证一次k=1,然后直接搜索匹配即可
阅读全文
摘要:"题目链接" 题意:给你一张图和一条路径,沿着这条路径走,若走到某个点,该点不是之前的点算的最短路径上的一个点,就需要重新计算,求重新计算的最大次数与最小次数 已知终点,那我们可以反向跑一个最短路,求出每个点到终点$t$的距离$d_u$, 假设现在是$u$点 1.若$u$全部的可达点v满足 $d_u
阅读全文
摘要:"题目链接" 2s+n=100,可以直接暴力贪心,从末尾z开始删到a即可
阅读全文
摘要:"题目链接" 题意是给你一个数组$b$, $c$是从$1到n$,找到一个子集$[c_1, c_2,···, c_k]$,满足$c_i c_{i 1}, c_i c_{i 1} = b_{c_i} b_{c_{i 1}}$, 使得$b_{c_i}$的和最大 那我们可以转换一下等式, $c_i b_{c
阅读全文

浙公网安备 33010602011771号