![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM算法笔记
文章平均质量分 62
Henu_敖丙
靠近光,追随光,成为光,发散光
展开
-
算法笔记--并查集模板 题openjudge - 1526:宗教信仰
并查集 查询两个集合中是否有相同的元素,如果有,合并成一个集合;没有就算了 拿oj上一道题来说 1526:宗教信仰 描述 世界上有许多宗教,你感兴趣的是你学校里的同学信仰多少种宗教。 你的学校有n名学生(0 < n <= 50000),你不太可能询问每个人的宗教信仰,因为他们不太愿意透露。但是当你同时找到2名学生,他们却愿意告诉你他们是否信仰同一宗教,你可以通过很多这样的询问估算学校里的宗教数目的上限。你可以认为每名学生只会信仰最多一种宗教。 输入 输入包括多组数据。 每组数据的第一行包括n和m原创 2020-11-08 15:54:21 · 386 阅读 · 0 评论 -
算法笔记--DFS和BFS的复习(板子)
板子BFS(广度优先搜索)DFS(深度优先搜索) 迷宫 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 左上角走到右下角最短路径 BFS(广度优先搜索) #include<iostream> #include<queue> #include<cstdio> using namespace std; int map[5][5]; bool vis[5][5]; int d[5][5]={0}; int dx[4]={1,0原创 2020-11-01 23:06:20 · 297 阅读 · 0 评论 -
算法笔记--素数筛(朴素筛,埃式筛,欧拉筛)
素数 素数也叫质数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。如2 , 3 , 5 , 7 , 11等。 素数筛 素数筛即筛选出1~n内的素数的方法,这里介绍三种 常见的求素数的方法素数素数筛1.朴素筛2.埃氏筛3.欧拉筛 1.朴素筛 由上面的概念得,我们可以想到引入一个从1到它本身的for循环,只要中间有取余为0,那么它就不是素数。 #define MAX 100000 int prime[MAX]; int x=0; void psshai(int n) { for(int i原创 2020-10-31 01:24:08 · 794 阅读 · 0 评论 -
算法笔记--字符串匹配KMP算法,简单易懂
KMP算法 KMP算法看懂了就会感觉挺容易的,思路也很清晰。看不懂就会稀里糊涂。 先说什么是字符串匹配 字符串匹配。简单来说,就是给你两个字符串,寻找其中一个字符串是否包含另一个字符串,如果包含,返回包含的起始位置。 比如下面两个字符串: string s1="bacbababadababacacabc"; string s2="ababaca"; s1中包含s2,在s1下标10处; bacbababadababacacabc 再说说KMP算法 看完字符串匹配,你可能想到的可能是拿s1的首位与s2的首位比原创 2020-10-22 22:57:55 · 204 阅读 · 0 评论 -
算法笔记--快速幂算法模板
快速幂模板 快速幂算法能帮我们算出指数非常大的幂,比如2的1000000000次方的后几位,(算是能算出来,但存不进去完,太太太太太太大了,这里只显示后几位) example: 2 1000000000 376 本篇无注释,纯属自己复习快速幂 抄模板专用 #include<bits/stdc++.h> using namespace std; #define ll long long const ll mod=1e9; ll ppow(ll a,ll b) { ll ans=1; ll ba原创 2020-11-07 15:38:39 · 149 阅读 · 0 评论