随笔分类 -  牛客寒假算法训练营

摘要:并查集、求逆元、排列组合 题目传送门 解题思路 首先要求出没有修改时的方案数量,再考虑修改一个格子之后相对于之前的变化 1 求没有修改时方案数量 首先使用并查集操作求出连通块的个数和每个连通块的大小 假设有$cnt$个连通块,然后每个连通块的大小是$size_i , i\in [1, cnt]$ 那 阅读全文
posted @ 2021-02-28 17:21 VanHope 阅读(98) 评论(0) 推荐(0)
摘要:并查集 题目链接 就是并查集的扩展。 用size数组记录每个连通块的大小,用maxn数组记录每个联通块中数的最大值,答案就是:每个连通块大小*该连通块中数的最大值 ac代码 #include<bits/stdc++.h> using namespace std; const int N = 1000 阅读全文
posted @ 2021-02-25 20:05 VanHope 阅读(49) 评论(0) 推荐(0)
摘要:线性筛+暴力分解质因数+快速幂 题目传送门 首先对于$gcd(x_1, x_2, ..., x_n)$有两种解法 辗转相除法,每次用辗转相除法求两个数的gcd,然后用结果再和下一个数求gcd即可 对每个$x_i$ 分解质因子,n个数的最大公倍数就是:n个数所有(公共质因子的最小次幂 )的积 对于方法 阅读全文
posted @ 2021-02-20 23:54 VanHope 阅读(69) 评论(0) 推荐(0)
摘要:【2021寒假集训营第一场】A-串 dp,容斥原理,快速幂 传送门 这个题目就是容斥原理的应用,关键是弄明白长度为i的字符串根据us分为几种 长度为i的字符串主要分为三种: 不含u的 含u不含us的 含us的 这三种加起来就是全集 解法一: 使用$f[i]$表示长度为i的含有us的字符串 可以分为以 阅读全文
posted @ 2021-02-16 16:16 VanHope 阅读(59) 评论(0) 推荐(0)
摘要:线性筛+数学规律 传送门 前两天刚学了线性筛,拿这题练练手 开始的思路是: 先求出1-n所有的素数, 然后用再遍历一遍去掉所有素数的幂次方,剩下的数就是没有被吃掉的 再求出所有没有被吃掉数的最小公倍数; 显然TLE了,数据量是1.6e8,太大了,数稍微大点,两步都求不完就卡死了;但是做的过程中发现了 阅读全文
posted @ 2021-02-09 23:37 VanHope 阅读(87) 评论(0) 推荐(0)
摘要:牛客寒假训练营第二场D题 Description: 整除分块,又称数论分块。是数论算法中的重要技巧,你可以在各种需要枚举因子的连续求和类问题中见到它的身影。如杜教筛,莫比乌斯反演化简后的整除分段求和等。balabala ...(复制过来乱码,遂放弃),题目链接:https://ac.nowcoder 阅读全文
posted @ 2021-02-04 20:47 VanHope 阅读(78) 评论(0) 推荐(0)