算法学习
文章平均质量分 56
王骕
这个作者很懒,什么都没留下…
展开
-
vijos P1317 开心的金明 C语言 源码(动态规划)
测试数据 #0: Accepted, time = 0 ms, mem = 476 KiB, score = 10测试数据 #1: Accepted, time = 0 ms, mem = 476 KiB, score = 10测试数据 #2: Accepted, time = 0 ms, mem = 472 KiB, score = 10测试数据 #3: Accept原创 2014-11-02 15:22:05 · 5294 阅读 · 0 评论 -
[算法第一轮复习] 并查集 + 路径压缩
关于路径压缩的问题:这是朴素查找的代码,适合数据量不大的情况:int findx(int x){ int r=x; while(parent[r] !=r) r=parent[r]; return r;} 下面是采用路径压缩的方法查找元素:int find(int x) //查找x元素所在的集合,回溯时原创 2015-04-04 16:05:28 · 639 阅读 · 0 评论 -
[算法第一轮复习] 拓扑排序
1.关于拓扑排序 拓扑排序 是将有先后顺序的事物,进行排序,例如挖矿A和B需要先挖好C,则A和B的拓扑排序顺序在C之后 拓扑排序一种将变量大小关系转换为图上结点间连通关系的算法 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,让图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出原创 2015-04-14 16:31:28 · 545 阅读 · 0 评论 -
P1051送给圣诞夜的极光 RE算法
#include #include using namespace std; const int MAXN = 1000 + 50;// const char L = '#'; int vis[MAXN][MAXN]; int map[MAXN][MAXN]; void dfs(int x, int y) { if(vis[x][y] || map[x][y] ==原创 2015-04-15 16:41:31 · 633 阅读 · 0 评论 -
[算法第一轮复习] kruskal求最小生成树算法
[算法第一轮复习] kruskal求最小生成树算法最小生成树算法即MST,有kruskal,prim两种算法,这里主要介绍kruskal什么是最小生成树? 对于一个图,保证其中每个点都可以连通的最小的花费1.算法核心 贪心+并查集2.算法实现过程克鲁斯卡尔算法假设 WN=(V,{E}) 是一个含有 n 个顶点的连通网,则按照克鲁斯卡尔算法构造原创 2015-04-09 15:15:06 · 715 阅读 · 0 评论 -
质因数分解及算法实现
每个合数都可以写成几个质数相乘的形式,这几个质数就都叫做这个合数的质因数。如果一个质数是某个数的因数,那么就说这个质数是这个数的质因数。而这个因数一定是一个质数。定义质因数(或质因子)在数论里是指能整除给定正整数的质数。两个没有共同质因子的正整数称为互质。因为1没有质因子,1与任何正整数(包括1本身)都是互质。正整数的因数分解可将正整数表示为一连串的质因子相乘,质因子如重复可以指数表示。根转载 2015-05-12 12:49:33 · 11001 阅读 · 1 评论 -
中国剩余定理的讲解 + 代码
代码: #include using namespace std; int a,b,n; long long ans,gcd; int main() { scanf("%d", &n); int i,j; scanf("%d %d", &a, &b); ans=b; gcd=a; for(i = 2; i <= n; ++i) {转载 2015-05-06 12:50:06 · 3995 阅读 · 0 评论 -
算法学习之 数论
数论一.素数v素数(又称质数)就是除了1和本身以外没有其他的因子的大于1的正整数.v100以内的素数有{2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97} 1.筛选法 生成素数表 【埃拉托斯特尼筛选法】 当需要求某一区间[2,n]内的所有素数时,可以从2开始,对于当前素数p,原创 2015-04-20 16:43:16 · 634 阅读 · 0 评论 -
C Free引用链接库
socket编程时 可能遇到本机没有ws2_32.lib的情况这是需要下载这个lib如果要在C free中引用这个lib 那么方法是在构建的时候 选择设置找到ws2_32.lib所在路径名字命名为ws2_32 【不要路径和后缀】再次编译——>lib下载地址原创 2015-08-07 16:38:05 · 3539 阅读 · 0 评论 -
[算法第一轮复习] 最短路算法之dijkstra
1.算法描述dijkstra,一种求单源正权图上的最短路的算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止Dijkstra算法思想为:设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后每求得一条最短路径 , 就将 加入到集合S中,直到全部顶点都加入到S中,算法就结束了),第二组为其余未确定原创 2015-04-02 15:11:09 · 821 阅读 · 0 评论 -
【算法】高精度算法讲解
1.概念高精度运算,是指参与运算的数(加数,减数,因子……)范围大大超出了标准数据类型(整型,实型)能表示的范围的运算。例如,求两个200位的数的和。这时,就要用到高精度算法了高精度使用数组来存储整数,模拟手算进行四则运算2.高精度运算涉及到的问题(1) 数据的输入(2) 数据的存储(3)数据的运算:进位和借位 (4)结果的输出:小数点的位置和处于多余的0 3.原创 2015-03-16 16:33:11 · 13105 阅读 · 1 评论 -
【树结构】 无根树转有根树
//输入无根树的结点个数n,输入n-1条边(u, v),输入欲指定的根的编号root,建立以root为根的树 /*可变长数组 一个有maxn行 当时每行长度可以不同的数组 用于表示树中结点间的关系 */ #include #include #include #include原创 2015-03-13 14:57:06 · 7855 阅读 · 1 评论 -
动态规划讲解
很特别的一个动态规划入门教程今天在网上看到一个讲动态规划的文章,是以01背包为例的,这文章和书上的讲解非常不一样,令我眼前一亮,于是转载一下下~~~(说明一下,本人非常痛恨教材公式定理漫天飞,实际的讲解却讲得非常枯涩难懂,这种中国式的教育已经延绵了几千年了,现在中国的教材还是这个样子,讲清楚些明白些就那么难么?高中有个老师讲的一句话一直觉得很有道理:“教得会天才不是真本事,能把转载 2014-10-19 17:48:12 · 4476 阅读 · 0 评论 -
DFS与BFS的 学习与总结【文章摘录自网络】
图的的搜索算法主要分为广度优先搜索(breadth-first search或BFS)和深度优先搜索(depth-first search或DFS广度优先搜索(BFS) -- 利用队列 算法始终首先发现距离起始顶点较近的顶点,然后才发现较远的顶点。假设搜索的出发顶点为s,则首先搜索与s直接相邻的顶点,然后再搜索这些相邻顶点的相邻顶点。在搜索过程中可以记录每个顶点到起始顶点s的距离。这种原创 2014-12-26 16:02:27 · 6675 阅读 · 0 评论 -
[C++]真正的四舍五入方法 不要再相信什么一句话的算法了
先贴出错误算法: #include int main() { double a = 3.155; printf("%lf\n", a); a = (int)((a * 100) + 0.5) / 100.0; printf("%lf", a); return 0; }测试 : 据说此方原创 2015-02-06 14:36:36 · 9046 阅读 · 1 评论 -
VIjos P1292火车票 防删除 某大牛提供的资料,如有侵权请立刻提出,我会立刻删除
P1292火车票 动态规划 单调性DP描述一个铁路线上有n(2站之间的距离 - X 票价0L1L2其中L1,L2,L3,C1,C2,C3都是已知的正整数,且(1 现在需要你对于给定的线路,求出从该线路上的站A到站B的最少票价。你能做到吗?格式输入格式输入文件的第一行为6个整数, L1, L2, L3, C1原创 2015-02-06 17:10:40 · 4661 阅读 · 0 评论 -
排列组合讲解
排列组合是组合学最基本的概念。所谓排列,就是指从给定个数的元素中取出指定个数的元素进行排序。组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。排列组合的中心问题是研究给定要求的排列和组合可能出现的情况总数。 排列组合与古典概率论关系密切。组合数学中的一种[编辑义项名]排列组合概述 删除切换更换模版基本信息栏 (当前模板:其他)中文名原创 2015-02-07 09:56:57 · 7340 阅读 · 0 评论 -
为什么说比较两个浮点数是否相等是不安全的?
在以前的时候,浮点计算使用的是软件方式完成的,效率比较低。现代CPU大多数都带有设计良好的浮点运算单元,这样以来浮点运算与整数运算之间的性能差异就变小了。 虽然浮点运算在有了FPU之后逐渐流行起来,但是时至今日,仍然有很多程序员不了解浮点格式所固有的缺陷。从本质上讲,浮点运算只是实数运算的一个近似。如果一个软件工程师不了解这种近似所带来的问题,那这种不精确的表示法就会给其所编写的软件带来原创 2015-02-18 14:59:11 · 21642 阅读 · 1 评论 -
[2015.3.4]思路很关键!
OJ:http://oj.jdfz.com.cn:8081/oldoj/1009: 护花 #include #include #define max 100001 using namespace std; long long ans; struct store{ float x; long long a1; long long b1;原创 2015-03-04 16:57:06 · 4473 阅读 · 0 评论 -
矩阵专题
矩阵在数学中,矩阵(Matrix)是指纵横排列的二维数据表格,最早来自于方程组的系数及常数所构成的方阵。图可以用矩阵表示,图中顶点与顶点之间关系、顶点与边之间关系、边与回路的关系,都可以用矩阵来表示。邻接矩阵1.用一个一维数组存放图中所有顶点数据;用一个二维数组存放顶点间关系(边或弧)的数据,这个二维数组称为邻接矩阵。邻接矩阵又分为有向图邻接矩阵和无向图邻接矩阵2.邻接矩阵原创 2015-03-13 14:18:12 · 4094 阅读 · 0 评论 -
文章标题
(此题未完)HNUST-1491-并查集_宗教信仰问题总结: 1.定义: 并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题,每个集合通过一个代表来识别,代表即集合中的某个成员,通常选择根做这个代表 2.主要过程初始化 把每个点所在集合初始化为其自身。 通常来说,这个步骤在每次使用该数据结构时只需要执行一次,无论何 种实现方式,时间复杂度均原创 2017-08-10 22:27:19 · 1126 阅读 · 0 评论