随笔分类 -  算法竞赛

摘要:一类以并查集在建树过程中维护各种信息的值——克鲁斯卡尔重构树前身 第一次见到是在zzu的校赛中,印象深刻 H.Sum of Maximum Weights 题意:给定一棵树,求树上任意两点间最短路径中的最大边权的sum 官方Solution: 我们先将边按权值排序,这样每次处理的都是当前的最大权值 阅读全文
posted @ 2024-05-18 15:57 potential-star 阅读(151) 评论(0) 推荐(0)
摘要:bitset bitset前身:普通状态压缩的优化 以cf937G为例,对于邻接矩阵的由二维压缩到一维 #include <bits/stdc++.h> using i64 = long long; void solve() { int n; std::cin >> n; std::vector<s 阅读全文
posted @ 2024-05-18 15:55 potential-star 阅读(75) 评论(0) 推荐(1)
摘要:从子集和问题到and卷积 枚举子集:\(O(3^{n})\) int u=15; for (int s = u; s; s = (s - 1) & u) { b=s ; cout<<b<<endl; } /* 1111 1110 1101 1100 1011 1010 1001 1000 0111 阅读全文
posted @ 2024-05-18 15:54 potential-star 阅读(66) 评论(0) 推荐(0)
摘要:01trie特训2 题意:给定一个含有 n 个元素的数组 Ai,你可以选择两个不相交的子段。求出这两个子段内的数的异或和的差值的最大值。 Sol:考虑枚举两段的分界点,对于较短的两段来说可能会有多个分界点但这样我们求的是答案的超集,一定会包括答案的。对于一个分界点,我们先考虑如果要求以左边区间必须包 阅读全文
posted @ 2024-05-18 15:53 potential-star 阅读(104) 评论(0) 推荐(0)
摘要:曼哈顿距离与切比雪夫距离 距离 - OI Wiki (oi-wiki.org)已经说的比较清晰,提取要点和结论便于复习使用。 曼哈顿距离:\(d \left(\right. A , B \left.\right) = \left|\right. x_{1} - x_{2} \left|\right. 阅读全文
posted @ 2024-05-18 15:51 potential-star 阅读(1875) 评论(0) 推荐(0)
摘要:概率dp 首先是正着递推的计算概率的dp问题 https://ac.nowcoder.com/acm/contest/28263/A 纯数学题 对随机的数字大小分类讨论,计算概率的时候利用高中几何概型的线性规划手法进行计算。 double g=0.5; void solve(){ double k, 阅读全文
posted @ 2024-05-18 15:51 potential-star 阅读(57) 评论(0) 推荐(0)
摘要:分治初步 归并排序求逆序对 Sol:在归并排序过程中,本身就是分治思想,递归的对左区间排序,右区间同理。对于已经有序两段进行合并只需要\(O(n)\)的时间,递归共\(log_{2}{n}\)层,时间复杂度为\(O(nlog_{2}{n})\) debug:1.对于没有到达边界的一段也需要放入临时数 阅读全文
posted @ 2024-05-18 15:50 potential-star 阅读(30) 评论(0) 推荐(0)
摘要:二进制拆位 题意:给定一个数组,求所有子区间的区间异或和的sum Sol:先做异或前缀和,原问题则变成求数组中任意两个数的异或,然后全部相加起来的结果。我们考虑每个元素每位的贡献,只需要统计前面(偏序计数)有多少个数的本位与自己不同。 //这个题目显然应该作为模板题,似乎没有找到直白的在原数组上作拆 阅读全文
posted @ 2024-05-18 15:49 potential-star 阅读(140) 评论(0) 推荐(0)
摘要:从启发式合并到Dsu on Tree 传统启发式合并 [HNOI2009] 梦幻布丁 题目描述 \(n\) 个布丁摆成一行,进行 \(m\) 次操作。每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色。 例如,颜色分别为 \(1,2,2,1\) 的四个布丁一共有 \(3\) 段 阅读全文
posted @ 2024-05-18 15:48 potential-star 阅读(33) 评论(0) 推荐(0)
摘要:倍增大专题 [AHOI2008] 紧急集合 / 聚会 - 洛谷 题意:给定一棵树,多次查询费马点(bushi 费马点的含义是:到三个点的距离之和最小 Solution:考虑画图发现树上三点两两求lca,必然至少两个相同,然后我们只需要让费马点为另一个点就可以了,因为这一段路程只需要一个点走就最好了。 阅读全文
posted @ 2024-05-18 15:48 potential-star 阅读(81) 评论(0) 推荐(0)
摘要:01 trie 找序列中任意两数的最大异或和 int n, m; int a[N]; int idx=0; int ch[N*31][2]; void insert(int x){ int p=0; for(int i=30;i>=0;i--){ int u=(x>>i)&1; if(!ch[p][ 阅读全文
posted @ 2024-04-20 03:19 potential-star 阅读(28) 评论(0) 推荐(0)
摘要:DFS序专题 NC13611 https://ac.nowcoder.com/acm/problem/13611 题意:要求树上任意两点相同颜色之间的路径上的点也是相同颜色,k种颜色,求方案数 Solution:原问题等价于将树分割成若干连通块且相互之间颜色不同 其实是道数论题。 题意可以转化为将树 阅读全文
posted @ 2024-04-12 20:00 potential-star 阅读(43) 评论(0) 推荐(0)
摘要:找到最小的数满足里面有n个不被x整除的整数,m个不被y整除的数,且这n个数和m个数完全不重合。x和y都是质数 int n, m,a,b; //int a[N]; bool check(int x){ int n1=x/a; int m1=x/b; int c=x/(a*b); int p=n1-c, 阅读全文
posted @ 2024-04-06 21:09 potential-star 阅读(41) 评论(0) 推荐(0)
摘要:Codeforces Round 937 (Div. 4) B题是输出规律图形题,对于这种题不能直接不思考就上去模拟,而应该思考一下数学规律,往往是模意义下的规律。 本题只需要模4以后的结果分为两类,分别讨论即可。对于模4可以利用位运算取出第二位的,这与模2同理。 char s1='#'; char 阅读全文
posted @ 2024-04-04 13:57 potential-star 阅读(117) 评论(0) 推荐(0)
摘要:Codeforces Round 859 (Div. 4) 评价:比较简单的一集,简单考察思维和最基础算法 E:交互题。看了oiwiki和codeforces的文章,之前看的abc文章忘了,打算写一篇总结特点和一些典型例题,还了解了其他题型。 Solution:回到本题:只需要利用前缀和优化每次二分 阅读全文
posted @ 2024-04-04 00:42 potential-star 阅读(45) 评论(0) 推荐(0)
摘要:Codeforces Round 918 (Div. 4) D:本题从实现上来说正难则反,应该倒着做 在我正着做的时候,由于在访问后面元素的时候没有判边界,导致数组越界,出现奇怪字符在最后答案中。 int n, m; int a[N]; bool check(char c){ if(c=='a'|| 阅读全文
posted @ 2024-04-02 19:56 potential-star 阅读(85) 评论(0) 推荐(1)
摘要:https://www.luogu.com.cn/problem/P8773 [蓝桥杯 2022 省 A] 选数异或 题目描述 给定一个长度为 \(n\) 的数列 \(A_{1}, A_{2}, \cdots, A_{n}\) 和一个非负整数 \(x\), 给定 \(m\) 次查询, 每次询问能否从 阅读全文
posted @ 2024-03-30 01:53 potential-star 阅读(38) 评论(0) 推荐(0)
摘要:https://www.luogu.com.cn/problem/P5752 https://codeforces.com/contest/598/problem/E cf这个题考虑dp预处理,状态是三维的,转移是分割方案和所分块需要获得的巧克力数量。最后题目多次询问可以o(1)快速查询的 // P 阅读全文
posted @ 2024-03-27 23:09 potential-star 阅读(43) 评论(0) 推荐(0)