约数 区间codeforces divisors

Codeforces Round 642 (Div3)

K-periodic Garland 给定一个长度位$n$的$01$串,每次操作可以将$1$变为$0$或者将$0$变为$1$,现在你需要通过操作使得所有$1$之间的距离为$k$,求最少的操作次数,注意全为$0$也算 $1<=n<=1e6,1<=k<=n$ 题解:$dp$ / 贪心 : 最大子段和思想 ......
Codeforces Round Div3 642 Div

Codeforces Round 642 (Div3)

K-periodic Garland 给定一个长度位$n$的$01$串,每次操作可以将$1$变为$0$或者将$0$变为$1$,现在你需要通过操作使得所有$1$之间的距离为$k$,求最少的操作次数,注意全为$0$也算 $1<=n<=1e6,1<=k<=n$ $dp$ / 贪心 : 最大子段和思想 方法 ......
Codeforces Round Div3 642 Div

codeforces 1795E Explosions?

https://codeforces.com/problemset/problem/1795/E 解题思路 问题的核心是要构造有一个先严格递增,然后严格递减的子序列。不在这个序列中的怪物单独击杀。先递增后递减可以看作是两个对称的问题,所以把递增序列的构造考虑清楚就可以了。 假设已经知道将1~i-1构 ......
codeforces Explosions 1795E 1795

codeforces 1796D Maximum Subarray

https://codeforces.com/problemset/problem/1796/D 解题思路 最大子序列问题的变种。记 f[i][j][p] 表示当前i个元素中有j个元素增加x时,以i结尾并且包含p个元素增加x的子序列的最大值。 f[i][j][p] = max(f[i-1][j-1] ......
codeforces Subarray Maximum 1796D 1796

前n个数约数的和

题目描述 输入一个数n,输出前n个数约数的和。(约数是指若整数a除以整数b除得的商正好是整数而没有余数) 输入 输入一个整数n。 输出 输出一个整数。 样例输入 复制 7 样例输出 复制 41思路:暴力时间N方复杂度过不了,使用线性筛选:具体来说,我们可以使用一个数组sum,其中sum[i]表示正整 ......
约数 个数

Codeforces Round 862 (Div. 2)

Codeforces Round 862 (Div. 2) 链接 Codeforces Round 862 (Div. 2) A题 #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> #inclu ......
Codeforces Round 862 Div

Codeforces Round 863 (Div. 3)

Codeforces Round 863 (Div. 3) 链接 Codeforces Round 863 (Div. 3) A题 遍历这个字符串,如果要插入的数第一次小于当前的数,就将数插入到这里,如果到最后都没有插入数,插入到最后 #include <iostream> #include <al ......
Codeforces Round 863 Div

Codeforces Round 863 (Div. 3) E题

题目地址 题意:定义数组a包含所有不含数字4的正整数,给出一个n,要求求出数组a中第n个数 Solution 数位dp+二分,求出[1,mid]中不含数字4的正整数个数,不过因为有可能mid包含4,但是由于贡献是一样的,可以直接把4都变成3,最后处理一下即可 int dp[20]; int a[20 ......
Codeforces Round 863 Div

区间和线段树封装模板

区间和线段树封装模板,开箱即用 注意:线段树大小最多支持$2^{30}-1$个数 声明方法: SegSumTree<typename>st,typename为线段树存储的类型(建议只填写整数类型),建立一颗空线段树,后续必须先用rebuild或resize初始化 SegSumTree<typenam ......
线段 区间 模板

Disjoint-Set-Union Sum (诈骗题)(区间DP, 位置顺序!!!!)

题目大意: 给出一个序列P , n 个点 每次可以选择2个 相邻区间进行合并, 会产生一个贡献值,当然合并n-1就合并完了, 问在所有的情况下, 贡献和是多少 思路: 易错点: 这个所有情况, 你枚举的合并的那个先后顺序是有关系的!!! 因此直接去区间dp只能把各个合并的情况给弄出来,但是他的先后顺 ......

hdu-5306(区间最值+线段树)

hdu Gorgeous Sequence HDU - 5306 题意: 给定一个长度为n的区间,做m次操作,三种操作 对于序列[L,R]区间中的每个a~i~,用min(a~i~,x)替换。 打印序列[L,R]区间的最大值 打印序列[L,R]区间和 因为区间和与区间最值无关,所以无法直接用简单的标记 ......
线段 区间 5306 hdu

Codeforces Round 863 (Div. 3)

A. Insert Digit 放在第一个比他小的数前面 #include <bits/stdc++.h> using namespace std; void solve() { int n, d; cin >> n >> d; string s; cin >> s; for (char i: s) ......
Codeforces Round 863 Div

Codeforces Round 640 (Div. 4) ABCDEFG

https://codeforces.com/contest/1352 不知道怎么的复制过来的代码容易歪,观看效果可能不大好。 这场古早div4,大题极其友好,除了E卡空间卡到我爆炸,别的都体验感极好。 ###A. Sum of Round Numbers #include<bits/stdc++. ......
Codeforces ABCDEFG Round 640 Div

Codeforces Round 863 (Div. 3) A-C 赛后思路复盘

#A (思维) 思路:观察样例可知数越大放在前面越优。遍历字符串,判断当前位置的数字和要插入的数字的关系,如果要插入的数大于当前数,那么就插入到当前数的前面。string里有一个insert函数,可以把指定字符串插入到指定下标之前。 在原串下标为pos的字符前插入字符串str basic_strin ......
Codeforces 思路 Round 863 A-C

codeforces round 862

A. 和洛谷上的删数思路一致,后者是找峰顶,这个是找谷底 从前到后枚举每一位与要添加的数比大小,如果要添加的数 <= 该位的数,就继续枚举,否则就将这个数添加在其前面 B. 需要移动的步数 = 两个点所在的层数之差的绝对值,只要计算出所在层数就可以 一开始没想明白怎么算这个层数,先把每个点都变换到了 ......
codeforces round 862

Codeforces Round 861 (Div. 2)

Preface 这场感觉都是一个礼拜前补题打的了,但由于上周末事情比较多都没来得及写题解 因此可能题意都记得不是很清楚了,就简略地谈一谈吧 A. Lucky Numbers 不难想到直接暴力从左端点枚举到右端点并对每个数进行暴力判断 一个很naive的结论就是当答案为$9$时直接输出即可,然后我们发 ......
Codeforces Round 861 Div

Codeforces Round 863 (Div. 3) A-E 好题!标记一下

比赛链接 E 进制转换好题。题目要求我们把含有 $4$ 的数字挖掉。先考虑挖掉的不是 $4$, 而是 $9$.那我们要求的就是编号为 $k$, 仅由 $0 -- 8$ 组成的数字。这实际上就是求其在九进制下的表达形式。那么在挖去 $4$ 的时候,类似地,我们就是用 $0 - 3, 5 - 9$ 共八 ......
Codeforces 标记 Round 863 A-E

Educational Codeforces Round 90 (Rated for Div

Donut Shops 现在有两个超市,第一个超市的物品按件卖,每件商品的售价为$a$元;第二个超市的物品按箱卖,每箱有$b$件物品,每箱售价为$c$元,现在要让你买$x$和$y$件商品,使得在第一个超市买$x$件商品的总花费比在第二个超市买$x$件商品的总花费严格小,同理在第二个超市买$y$件商品 ......
Educational Codeforces Round Rated Div

795. 区间子数组个数

题目描述 给一个数组,再给一个值的范围[l, r], 问最大值在[l, r]之间的子数组有多少个? f1-双指针 基本分析 如果枚举子数组的右端点i,会有几种情况?(1)arr[i] > right; (left <= arr[i] <= right; (3)arr[i] < left 假如枚举到右 ......
数组 区间 个数 795

3377. 约数的个数(约数个数)

https://www.acwing.com/problem/content/3380/ 这题和第11届蓝桥杯B组国赛题类似 数论知识,就是分解质因数,把质数的指数加1即可 需要注意的是,本题应该是不能用数组模拟的,空间太少了 可以用unordered_map存储 #include<iostream ......
约数 个数 3377

Codeforces Round 862 A-E

Codeforces Round 862 (Div. 2) 先简单写一下 A-E 的题解。 A 异或的经典性质:$x \oplus x=0$。 B 显然要把字典序最小的那个字母放到最前面。 如果这个字母出现了很多次,那么应该选择最后一次出现的位置。这也很容易证明。 C 联立以后计算一下就行了。 比赛 ......
Codeforces Round 862 A-E

Codeforces Round 717 (Div. 2) B. AGAGA XOOORRR(位运算)

https://codeforces.com/contest/1516/problem/B 题目大意: 给定长度为n的数组a,问我们能不能一直选择两个相邻的元素进行异或后,删除这两个值,把异或值留下来, 最后剩下>=2个数字,它们都是相同的? 可以做到输出YES,不能的话输出NO。 input 2 ......
Codeforces XOOORRR AGAGA Round 717

线性DP+区间DP复习

线性dp 即递推状态转移方程有明显的线性关系,可能是1维线性,可能是2维线性,等等 如数字三角形:https://www.acwing.com/problem/content/900/ 首先考虑状态表示和状态计算 给图一个编号,如图,7为(4,2) 状态表示: f[i][j]表示所有从起点,走到i, ......
区间 线性 DP

Codeforces Round 862 (Div. 2) A-D题解

比赛地址 A. We Need the Zero 题意:给出一个数组,对任意1<=i<=n,令bi=ai^x,问是否存在x,使得b1^b2^...^bn=0 Solution 如果n为奇数,那么x一定存在,因为偶数个x异或得到的是0,直接令x=0^(a1^a2^...^an)即可 如果n为偶数,那么 ......
题解 Codeforces Round 862 A-D

Codeforces Round 862 (Div. 2) (4.2)

Codeforces Round 862 (Div. 2)A - We Need the Zero 思路:某个数被异或两次相当于没变,即判断n的奇偶性;n为偶数时判断所有数异或后的数是否为0,若为0,输出任意数;n为奇数时答案为所有数异或后的值 #include<bits/stdc++.h> usi ......
Codeforces Round 862 4.2 Div

Educational Codeforces Round 145 (Rated for Div. 2)

A. Garland 分类讨论 #include <bits/stdc++.h> using namespace std; void solve(){ string s; cin >> s; map<char,int> cnt; for( auto c : s ) cnt[c]++; if( cnt ......
Educational Codeforces Round Rated 145

Codeforces Round 862 (Div. 2)A-C思路复盘

感觉这场前三题都简单,复盘一下赛时的脑回路QAQ,c二分wa了四发赛后才过的血亏 #A 题意:问是否能找到一个数x,有$b_i = a_i⊕x$ ,使得$b$数组的总异或和为0。 思路:赛时模拟样例可以发现先把a数组的总异或和求出来假设为x,然后由异或性质可知相同为0,不同为1,可知这个x可能就是答 ......
Codeforces 思路 Round 862 A-C

Codeforces Round 862 (Div. 2)(CF1805) A-C题题解

CF1805A #include <bits/stdc++.h> #define debug(x) cout << "The variable \"" << #x << "\" of the \"" << __FUNCTION__ << "\" function in line " << __LIN ......
题解 Codeforces Round 1805 862

约数之和

约数之和 plus 0x01 背景题目 0. 定理 算术基本定理(正整数唯一分解定律): 不考虑排列顺序的情况下,每个正整数都能够以唯一的方式表示成它的质因数的乘积。 $x={p_1}^{k_1} * {p_2}^{k_2} *{p_3}^{k_3}.....{p_n}^{k_n}$ 人话:对于每个 ......
约数 之和

Codeforces Round 861 (Div. 2)

题目链接 C 核心思路 这个思路说实话有点玄学,也就是我们前面的数位按照l或者r的相同数位来填补,后面就填相同的数字也就是比如l是2345 我们可以是2999,2888,23111,23777. 这样构造好像肯定是最小的。 但是好好巩固下数位dp来做这道题还是更好的。 #include<iostre ......
Codeforces Round 861 Div