随笔分类 -  算法

摘要:头文件: #include<ext/pb_ds/hash_policy.hpp> #include<ext/pb_ds/assoc_container.hpp> 命名空间:using namespace __gnu_pbds; 两种hash_table: gp_hash_table:探测法,理论可以 阅读全文
posted @ 2023-11-07 21:41 blockche 阅读(435) 评论(0) 推荐(0)
摘要:# 【主席树】CF813 E. Army Creation 题目链接:https://codeforces.com/contest/813/problem/E ## 题意 多次询问,求一个区间内,所有数个数的总和,但相同的数最多被计算k次,强制在线。 ## 题解 这道题和牛客一道题很像,是那道题的加 阅读全文
posted @ 2023-08-26 21:57 blockche 阅读(48) 评论(0) 推荐(1)
摘要:# 【树状数组】牛客练习赛52 B.Galahad 题目链接:https://ac.nowcoder.com/acm/contest/1084/B ## 题意 多组询问,计算区间和,但相同的数只能被计算一次。 ## 题解 1. 离线处理询问,按右端点排序。 2. 对于相同的数字,我们只能选一个加入到 阅读全文
posted @ 2023-08-26 18:20 blockche 阅读(40) 评论(0) 推荐(1)
摘要:# 【主席树】洛谷 P3834 可持久化线段树2 题目链接:https://www.luogu.com.cn/problem/P3834 主席树是可持久化线段树的一种,也叫做可持久化权值线段树,主要可以用来O(logn)求静态区间的第k小数。 总所周知,普通线段树每次修改会遍历logn个点,那么我们 阅读全文
posted @ 2023-08-25 18:51 blockche 阅读(52) 评论(0) 推荐(0)
摘要:# 【kruskal重构树,倍增】2021 ICPC Asia Shanghai - H. Life is a Game 题目链接:[Problem - H - Codeforces 问题 - H - Codeforces](https://codeforces.com/gym/103446/pro 阅读全文
posted @ 2023-08-06 20:03 blockche 阅读(53) 评论(0) 推荐(0)
摘要:# 【树上背包】洛谷P2014 [CTSC1997] 选课 题目链接:[P2014 [CTSC1997\] 选课 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)](https://www.luogu.com.cn/problem/P2014) ## 题目描述 在大学里每个学生,为了 阅读全文
posted @ 2023-08-05 21:22 blockche 阅读(40) 评论(0) 推荐(0)
摘要:问题 在一个环上给n个区域用m种颜色染色,要求相邻区域颜色不同。 方法 1、公式 可以推出来一个公式为:$res = (m-1)^n+(-1)^n(m-1),(m≥2)$ 直接用就行了 2、dp递推 详细过程看这位大佬的博客,我觉得讲的很清楚了:浅析一类要求相邻不同的环上染色问题 - sun123z 阅读全文
posted @ 2023-03-04 21:15 blockche 阅读(547) 评论(0) 推荐(0)
摘要:因为求逆元的复杂度其实比较高,所以我们要尽可能地少用快速幂求逆元。 在下面代码中只用快速幂求了一次逆元,其余均是线性复杂度。 vector<Z> fac(n + 1, 1), invfac(n + 1); for (int i = 1; i <= n; i++) { fac[i] = fac[i - 阅读全文
posted @ 2022-09-05 09:04 blockche 阅读(246) 评论(0) 推荐(0)
摘要:题目链接 #10175. 「一本通 5.5 例 1」滑动窗口 - 题目 - LibreOJ (loj.ac) 前言 之前已经写过这道题的题解(2022GDUT寒假专题学习-1 B,F,I,J题 - blockche - 博客园 (cnblogs.com)),当时用的是 deque 模拟单调队列的方法 阅读全文
posted @ 2022-03-04 21:51 blockche 阅读(66) 评论(0) 推荐(0)
摘要:前言 专题链接:GDUT-21级第五次专题训练——树状数组,线段树 - Virtual Judge (vjudge.net) 本专题内容都是树状数组和线段树的简单应用。在刚接触的时候,树状数组因为其代码量比线段树少很多,所以比较好入手,但因为树状数组其实是一种利用二进制的结构,所以深入理解起来的话其 阅读全文
posted @ 2022-02-22 00:59 blockche 阅读(80) 评论(0) 推荐(0)
摘要:C - 战棋小孩 题目来源:2022牛客寒假算法基础集训营5 题目链接:C-战棋小孩_2022牛客寒假算法基础集训营5 (nowcoder.com) 题目 酒馆战棋排行榜记录了全国积分最高的200个账号,上榜是九峰的梦想。 这一天九峰进行了nnn局游戏,每局游戏都可以从两个英雄中选择一位,由于九峰的 阅读全文
posted @ 2022-02-13 18:10 blockche 阅读(47) 评论(0) 推荐(0)
摘要:D - 数位小孩 题目来源:2022牛客寒假算法基础集训营5 题目链接:D-数位小孩_2022牛客寒假算法基础集训营5 (nowcoder.com) 题目 九峰最近沉迷数位dp,这天他又造了个数位dp题: 给出一个区间[l,r][l,r][l,r],求这个区间内有多少个数字满足如下条件: 1.每相邻 阅读全文
posted @ 2022-02-13 15:19 blockche 阅读(52) 评论(0) 推荐(0)
摘要:J-区间合数的最小公倍数 题目来源:2022牛客寒假算法基础集训营4 题目链接:J-区间合数的最小公倍数_2022牛客寒假算法基础集训营4 (nowcoder.com) 题目 小红拿到了两个正整数 lll 和 rrr 。 她想知道 [l,r][l,r][l,r] 区间所有合数的最小公倍数是多少?由于 阅读全文
posted @ 2022-02-13 00:51 blockche 阅读(117) 评论(0) 推荐(0)
摘要:专题链接:专题训练3-图论 - Virtual Judge (vjudge.net) A - 并查集 题目 这是一道模板题。 维护一个 nn 点的无向图,支持: 加入一条连接 uu 和 vv 的无向边 查询 uu 和 vv 的连通性 由于本题数据较大,因此输出的时候采用特殊的输出方式:用 00 或 阅读全文
posted @ 2022-02-06 19:25 blockche 阅读(92) 评论(0) 推荐(0)
摘要:题目:Problem - D - Codeforces 题解 此题是给数组排序的题,操作是选取任意三个数,然后交换他们,确保他们的位置会发生改变。 可以交换无限次,最终可以形成一个不下降序列就输出“YES”,否则“NO”。 只需要注意以下两点即可解出此题: 1.如果数组中存在两个相同的元素,那么就一 阅读全文
posted @ 2021-12-16 19:54 blockche 阅读(81) 评论(0) 推荐(0)
摘要:题目:P1443 马的遍历 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 记录一下第一道ac的bfs,原理是利用队列queue记录下一层的所有点,然后一层一层遍历; 其中: 1.pair<,>可以将两个数据类型压缩成一个数据压进队列里,在表示二维坐标时好用。 2.setw()可以 阅读全文
posted @ 2021-12-07 11:23 blockche 阅读(52) 评论(0) 推荐(0)
摘要:题目:P1439 【模板】最长公共子序列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 关于LCS问题,可以通过离散化转换为LIS问题,于是就可以使用STL二分的方法O(nlogn)解决LCS问题! 先将a数组与一个递增的数列1,2,3...n两两对应(t数组),再把b数组中每个 阅读全文
posted @ 2021-11-30 10:48 blockche 阅读(80) 评论(0) 推荐(0)
摘要:先给出例题:P1020 [NOIP1999 普及组] 导弹拦截 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 大佬题解:P1020 [NOIP1999 普及组] 导弹拦截 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)第一个就是 如果是求最长子序列长度,一般可以 阅读全文
posted @ 2021-11-25 17:38 blockche 阅读(66) 评论(0) 推荐(0)