知识笔记
算法笔记
红豆布丁
我的世界不允许你消失,不管结局是否完美
展开
-
并查集&欧拉路
我的个人博客:地址HDU1878——欧拉回路(并查集)http://acm.hdu.edu.cn/showproblem.php?pid=1878题意:这道题讲的是判断是否是一个欧拉回路。欧拉通路: 通过图中每条边且只通过一次,并且经过每一顶点的通路。欧拉回路: 通过图中每条边且只通过一次,并且经过每一顶点的回路。无向图是否具有欧拉通路或回路的判定:欧拉原创 2017-11-29 22:13:07 · 206 阅读 · 0 评论 -
SDNU 1011(第二类stirling数)
1011.盒子与球Time Limit: 1000 MS Memory Limit: 32768 KBTotal Submission(s): 667 Accepted Submission(s): 165Description现有r个互不相同的盒子和n个互不相同的球,要将这n个球放入r个盒子中,且不允许有空盒子。则有多少种放原创 2017-10-24 16:41:37 · 572 阅读 · 0 评论 -
SDNU 1017 (冒泡排序法)
1017.陶陶装苹果Description陶陶想把苹果装到袋子里,找来找去就找到了一个小袋子,苹果太多,袋子根本装不下,并且袋子最多可以装的质量为M,陶陶想使装的苹果个数尽量多。请你来帮他。Input第一行袋子的最大承受重量M(0第二行苹果的个数N(0紧跟N行,每行一个整数,每个苹果的质量a(0Output原创 2017-10-21 19:54:59 · 429 阅读 · 0 评论 -
畅通工程再续
题目地址:畅通工程再续①Kruskal算法:#include #include #include #include #include using namespace std;const int maxn = 110;const int MAX = 10010;int fa[maxn];struct Node //建立坐标{ double x;原创 2018-01-23 21:32:36 · 177 阅读 · 0 评论 -
KMP算法Next数组的应用
题目一:Count the string思路给定一个字符串,输出这个字符串的前缀出现次数,根据next的性质知,当next有值的时候,就证明肯定有一个匹配,所以我们统计出next数组里面>0的个数就是有多少个匹配,再加上与自身的匹配n就是答案代码#include #include #include using namespace std;const i原创 2018-01-20 19:21:20 · 486 阅读 · 0 评论 -
关于使用Next数组求连续字符串个数
题目地址:Power Strings 个人博客地址: http://icharles.top/2018/01/19/KMP/ 题目大体意思就是求连续字符串个数 由于刚学习完KMP,就想到了利用Next数组来求连续字符串的个数,发现存在以下关系: N = len / (len - next[len] ) #include #include #include原创 2018-01-19 21:25:54 · 346 阅读 · 0 评论 -
十大经典的排序算法
十大经典的排序算法及其时间复杂度和稳定性如上表所示。判断一个排序算法是否稳定是看在相等的两个数据排序算法执行完成后是否会前后关系颠倒,如若颠倒,则称该排序算法为不稳定,例如选择排序和快速排序。(图片来源 http://www.jianshu.com/p/d2a02050a183)一、快速排序介绍 (原文:http://www.sczyh30.com/posts/Algorith转载 2017-12-01 23:38:06 · 337 阅读 · 0 评论 -
欧几里得算法
欧几里得算法计算的是两个自然数a和b的最大公约数,两个数的最大公约数通常写成gcd(a, b),如果有gcd(a, b)==1,则有a,b互质。欧几里得算法递归int Gcd(int a, int b){ if(b == 0) return a; return Gcd(b, a % b);}迭代int Gcd(int a, int b){ whi原创 2017-12-14 19:20:09 · 204 阅读 · 0 评论 -
【笔记】STL-Vector
vector(向量) vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组。像数组一样,vector类也用从0开始的下标表示元素的位置;但和数组不同的是,当vector对象创建后,数组的元素个数会随着vector对象元素个数的增大和缩小而自动变化。 用法:#include<vector>using namespace std;vector <int > aint b =原创 2017-12-15 09:19:21 · 149 阅读 · 0 评论 -
快速幂算法
快速幂算法题目地址#include #include using namespace std;long long a, b, c;long long ans;int PowerMod(){ ans = 1; a %= c; while(b>0) { if(b & 1 == 1) ans = (ans *原创 2017-11-26 20:26:39 · 119 阅读 · 0 评论 -
【笔记】在主函数内声明int a[1000000],运行出错
#include int main(){ int a[1000000]; //局部变量 return 0;}//编译运行后发现溢出错误。#include int a[1000000]; //全局变量int main(){ return 0;}//编译运行后正常。在解释原因前我们先看由C/C++编译的程序占用的内存分为几个部分:1、栈区(stack原创 2017-11-17 15:04:41 · 1948 阅读 · 2 评论 -
【笔记】C++排序函数
函数名功能描述sort对给定区间所有元素进行排序stable_sort对给定区间所有元素进行稳定排序partial_sort对给定区间所有元素部分排序partial_sort_copy对给定区间复制并排序nth_element找出给定区间的某个位置对应的元素is_sorted判断一个区间是否已经排好原创 2017-10-29 21:45:10 · 232 阅读 · 0 评论