算法
HLongSh
这个作者很懒,什么都没留下…
展开
-
约瑟夫数学推导求解
约瑟夫环 约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围;从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。 前几天,在一篇文章中得知了约瑟夫环的问题。然后,就涉及了解决办法。这个问题,在许多计算机或者关于数据结构的书中都有提及,而其中的解决办法便转载 2018-02-21 00:44:16 · 591 阅读 · 0 评论 -
使用栈实现快排,斐波那契,汉诺塔
原文地址:http://blog.csdn.net/chinainvent/article/details/1317024(写的特别好) 原文地址:http://blog.csdn.net/gf426326/article/details/77983197 快排: #include #include #include #include #include #include //快速转载 2018-03-01 19:21:28 · 956 阅读 · 1 评论 -
c全排列解法(非递归)
只要对字符串求出字典序即可实现全排列 求法: 要考虑全排列的非递归实现,先来考虑如何计算字符串的下一个排列。如"1234"的下一个排列就是"1243"。只要对字符串反复求出下一个排列,全排列的也就迎刃而解了。 如何计算字符串的下一个排列了?来考虑"926520"这个字符串,我们从后向前找第一双相邻的递增数字,"20"、"52"都是非递增的,"26 "即满足要求,称前一个数字2为替转载 2018-03-01 01:59:34 · 820 阅读 · 0 评论 -
ST算法(求区间最值)
原文:http://blog.csdn.net/niushuai666/article/details/6624672 1. 概述 RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j当然,该问题也可以用线段树(也叫区间树)解决,算法复杂度为:O(N)~O(logN),这里我们转载 2018-03-02 17:38:43 · 570 阅读 · 0 评论 -
动态规划_背包问题
01背包问题有N件物品和一个容量为V的背包。(每种物品均只有一件)第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。未优化版本:for (int i=1;i<=n;++i) { for (int j=v;j>=0;--j) { if(c[i]<=j)//如果当前物品可以放入当前空间的背包 f[i][j]=max(f...原创 2018-03-31 13:49:11 · 285 阅读 · 0 评论 -
AC自动机
关于AC自动机AC自动机:Aho-Corasickautomation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典树)Trie和KMP模式匹配算法的基础知识。AC自动机算法分为3步:构造一棵Trie树,构造失败指针和模式匹配过程。简单来说,AC自...转载 2018-04-02 01:28:26 · 136 阅读 · 0 评论 -
单调栈&单调队列入门
单调队列比较难理解代码,所以自己加了点注释#include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; struct node { int x, y; }v[101]; //x表示值,y表示位置 可以理解为下标 int a[...转载 2018-04-06 07:14:09 · 296 阅读 · 0 评论 -
动态规划-青蛙过桥
原文:https://blog.csdn.net/bensonrachel/article/details/78711092 具体题目如下: Description 一座长度为n的桥,起点的一端坐标为0,且在整数坐标i处有a[i]个石头【0<=a[i]<=4】, 一只青蛙从坐标0处开始起跳,一步可以跳的距离为1或2或3【即每一步都会落在整数点处】, 青蛙落...转载 2018-08-01 03:25:40 · 868 阅读 · 0 评论