算法
文章平均质量分 58
laugh12321
这个作者很懒,什么都没留下…
展开
-
《挑战程序设计竞赛》1.6.1-先从简单题开始
输入:n = 5 n = 4a = {2, 3, 4, 5, 10} a = {4, 5, 10, 20}输出:12(选择3、4、5时) 0(无论怎么选都无法组成三角形) ...原创 2018-04-15 17:03:37 · 207 阅读 · 0 评论 -
POJ 2387 Til the Cows Come Home (最短路径 模版题 三种解法)
原题链接:Til the Cows Come Home题目大意:有 个点,给出从 点到 点的距离并且 和 是互相可以抵达的,问从 到 的最短距离。 题目分析:这是一道典型的最短路径模版题,需要注意的是:使用dijkstra算法求解需要考虑有重复边问题,而使用bellman-ford算法 和 spfa算法 可以忽略这个问题。代码如下:// Dijkstra#in...原创 2018-08-14 16:47:41 · 588 阅读 · 0 评论 -
HDU 2018 母牛的故事 (递归入门)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2018思路分析:问题分析:这道题的递推关系非常类似斐波那契数列,由题意不难得到以下函数递推式: 对于上述的递推函数,最简单的做法是编写一个递归的函数来实现。实际上,本题的递推函数是可以用一个递推过程的函数来实现的,即不需要用递归函数来实现。用递推函数效率...原创 2018-08-02 22:01:00 · 237 阅读 · 0 评论 -
并查集算法详解
并查集在计算机科学中,并查集是一种树型的数据结构,用于处理一些不交集()的合并及查询问题。有一个联合- 查找算法( )定义了两个用于此数据结构的操作:Find:确定元素属于哪一个子集。它可以被用来确定两个元素是否属同一子集。 Union:将两个子集合并成同一个集合。由于支持这两种操作,一个不相交集也常被称为联合-查找数据结构()或合并-查找集合()。其他的重要方法,,用于建立单元素集合...原创 2018-08-15 10:38:51 · 713 阅读 · 0 评论 -
01 背包问题的三种写法
不妨先用最朴素的方法,针对每个物品是否放入背包进行搜索:// 输入int n, W;int w[MAX_N], v[MAX_N];// 从第 i 个物品开始挑选总重小于 j 的部分int rec(int i, int j) { int res; if (i == n) { // 已经没有剩余物品了 res = 0; } els...原创 2018-08-08 17:34:36 · 715 阅读 · 0 评论 -
【初等排序】插入排序法详解
插入排序法插入排序法是一种很容易想到的算法,它的思路与打扑克时排列手牌的方法很相似。比如我们现在单手拿牌,然后要将牌从左至右,从小到大进行排序。此时我们需要将牌一张张抽出来,分别插入到前面已排好序的手牌中的适当位置。重复这一操作直到插入最后一张牌,整个排序就完成了。插入排序的算法如下:insertionSort(A, N) // 包含 N 个元素的 0 起点数组 A for ...原创 2018-08-24 15:58:00 · 317 阅读 · 0 评论 -
【数据结构】图的基本操作——图的构造(邻接矩阵,邻接表),遍历(DFS,BFS)
邻接矩阵实现如下:/*主题:用邻接矩阵实现 DFS(递归) 与 BFS(非递归)作者:Laugh语言:C++*******************************************样例输出如下:请选择图的类型(a - 无向图, b - 有向图):a请输入总顶点数,总边数:8 9请依次输入点的信息:a b c d e f g h输入一条边依附的顶点及权值 (e...原创 2018-11-02 17:42:39 · 2253 阅读 · 0 评论 -
【数据结构】哈夫曼树的编码与译码
#include <stdio.h>#include <malloc.h>#include <string.h>typedef struct { char info; int weight; int parent, lchild, rchild;} HTNode, *HuffmanTree;typedef char* *HuffmanCod...原创 2018-11-05 23:09:02 · 7512 阅读 · 4 评论 -
机器学习|线性回归算法详解 (Python 语言描述)
线性回归线性回归是一种较为简单,但十分重要的机器学习方法。掌握线性的原理及求解方法,是深入了解线性回归的基本要求。除此之外,线性回归也是监督学习回归部分的基石。线性回归介绍在了解线性回归之前,我们得先了解分类和回归问题的区别。首先,回归问题和分类问题一样,训练数据都包含标签,这也是监督学习的特点。而不同之处在于,分类问题预测的是类别,回归问题预测的是连续值。例如,回归问题往往解决:股...原创 2019-01-03 22:58:51 · 418 阅读 · 1 评论 -
[动态规划] 矩阵链乘法
讲解: 个矩阵相乘时, 为 行 列的矩阵,以 为例进行分析,这些矩阵的乘积有多种计算顺序。举个例子,我们按习惯的从左到右的顺序进行计算时可以写作 ,从左到右计算时可以写作 。除此之外还有 等等,计算的顺序多种多样。这些计算顺序得出的结果(矩阵链乘积)完全相同,但不同顺序下的 “ 乘法运算次数 ” 会有所差异。处理矩阵链乘法问题时,如果检查所有可能的计算顺序,那么算法的复杂度将达到 ...原创 2018-08-10 18:09:09 · 5967 阅读 · 4 评论 -
HDU 1106 (1.3.5) 排序 (C语言描述)
排序Problem Description输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。Input输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的...原创 2018-04-29 23:27:18 · 229 阅读 · 0 评论 -
PAT 乙级 1004. 成绩排名 (20)(C语言描述)
读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含1个测试用例,格式为 第1行:正整数n 第2行:第1个学生的姓名 学号 成绩 第3行:第2个学生的姓名 学号 成绩 ... ... ... 第n+1行:第n个学生的姓名 学号 成绩其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例...原创 2018-04-19 14:51:49 · 142 阅读 · 0 评论 -
HDU-2032.杨辉三角(C语言描述)
Problem Description还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1Input输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1<=n<=30),表示将要输出的杨辉三角的层数。Output对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间...原创 2018-04-15 17:56:00 · 271 阅读 · 0 评论 -
HDU-2010.水仙花数(C语言描述)
Problem Description 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。现在要求输出所有在m和n范围内的水仙花数。Input 输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。Output ...原创 2018-04-15 18:07:03 · 277 阅读 · 0 评论 -
《挑战程序设计竞赛》1.1 样例分析
题目:抽签内容:你的朋友提议玩一个游戏:将写有数字的 n个纸片放入口袋中,你可以从口袋中抽取 4次纸 片,每次记下纸片上的数字后都将其放回口袋中。如果这 4个数字的和是 m,就是你赢,否 则就是你的朋友赢。你挑战了好几回,结果一次也没赢过,于是怒而撕破口袋,取出所有纸 片,检查自己是否真的有赢的可能性。请你编写一个程序,判断当纸片上所写的数字是 k1, k2, …, kn时,是否存在抽取 4次和为...原创 2018-04-15 18:10:38 · 274 阅读 · 0 评论 -
《挑战程序设计竞赛》1.6.2-POJ的题目Ants
#include <stdio.h>#define max(a, b) (((a) > (b)) ? (a) : (b)) #define min(a, b) (((a) < (b)) ? (a) : (b))#define MAX_N 1000000 int main(void){ int L, n, i; int x[MAX_N];...原创 2018-04-16 15:13:25 · 288 阅读 · 0 评论 -
HDU 2673-shǎ崽 OrOrOrOrz(C语言描述)
问题描述问题是: 为您提供了一系列不同的整数, 请选择 "数字" 如下: 首先选择最大的, 然后是最小的, 然后是第二个最大的, 第二个最小的. 直到所有的数字被选中。例如, 给你 1 2 3 4 5, 你应该输出 5 1 4 2 3 。输入有多个测试用例, 每个案例从一个整数 n (1 < = N < = 10000) 开始, 跟随 N 个不同的整数。输出输出上面描述的不同整数序列。...原创 2018-04-17 23:42:39 · 204 阅读 · 0 评论 -
PAT 乙级 1002. 写出这个数 (20)(C语言描述)
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:yi san wu分析:由于题目中输入的数字很大,并不能用数字类...原创 2018-04-18 22:28:10 · 190 阅读 · 0 评论 -
PAT 乙级 1003. 我要通过!(20) (C语言描述)
“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:1. 字符串中必须仅有P, A, T这三种字符,不可以包含其它字符;2. 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;3. 如果 aPb...原创 2018-04-19 08:31:04 · 377 阅读 · 0 评论 -
HDU-1004(C语言描述)
Let the Balloon Rise输入输入包含多个测试用例。每个测试用例都以数字 N (0 < N < = 1000) 为起点, 分布的气球总数。下 N 行包含一个颜色。气球的颜色是一个多达15个小写字母的字符串。带有 N = 0 的测试用例终止输入, 并且不处理此测试用例. 输出对于每种情况, 在单行上打印最流行问题的气球颜色。保证每个测试用例都有一个唯一的解决方案。示例输入5...原创 2018-04-14 22:48:42 · 1435 阅读 · 1 评论 -
矩阵分解在推荐系统中的应用及实践
完整代码地址转载 2019-04-09 21:59:46 · 392 阅读 · 0 评论