
算法
追梦菜鸟
IT男,乐活族,爱旅游、运动、聊天,爱看电视剧
展开
-
博弈论
威佐夫博奕(Wythoff Game)有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规转载 2014-08-13 17:49:22 · 460 阅读 · 0 评论 -
DFS
How many integers can you findProblem Description Now you get a number N, and a M-integers set, you should find out how many integers which are small than N, that they can divided exactly原创 2016-01-22 16:38:02 · 346 阅读 · 0 评论 -
树的遍历
一、根据前前序遍历和中序遍历求后序遍历设某二叉树前序遍历为:ABCDEFGHI中序遍历为:BCAEDGHFI求该二叉树的后序遍历?因为二叉树前序遍历为:ABCDEFGHI,所以这棵树的根结点为A;又因为中序遍历为:BCAEDGHFI,所以这棵树的左子树为BC,右子树为EDGHFI;现在先看左子树中序遍历:BC,由前序遍历ABCDEFG原创 2016-03-03 16:43:21 · 980 阅读 · 0 评论 -
深度遍历和广度遍历
一、树的深度和广度遍历 树的深度搜索与树的前序遍历同理,根节点->左孩子->右孩子;树的广度搜索与树的层次遍历同理,一层一层遍历内容。深度搜索采用stack的适配器,先进后出原则;而广度搜索采用的queue适配器,先进先出原则,二者正好满足搜索需求。源码如下:#include#include#include#includeusing namespace st原创 2016-03-09 20:33:20 · 2667 阅读 · 0 评论 -
判断平面上两直线相交
直线相交首先引出计算几何学中一个最基本的问题:如何判断向量在的顺时针方向还是逆时针方向?把p0定为原点,p1的坐标是(x1,y1),p2的坐标是(x2,y2)。向量的叉积(cross product)实际上就是矩阵的行列式:当叉积为正时,说明在的顺时针方向上;叉积为0说明两向量共线(同向或反向)。当同时满足:(1)和在的两侧(即一个顺时针方向上,转载 2016-02-29 20:51:38 · 2141 阅读 · 0 评论 -
广度优先搜索和深度优先搜索—N皇后问题
1.递归回溯法源代码:#include #include #define N 15int x[N]; //皇后放置的列数int n; //皇后个数int sum=0; //可行解个数int place(int k){ int i; for(i=1;i<k;i++) if(abs(k-i)==abs(x原创 2016-03-14 20:40:36 · 3745 阅读 · 0 评论 -
排序算法—快速排序
在很多场合,直接使用快速排序的库函数是很方便的。下面讲下VC中库函数qsort()的用法:函数原型:void qsort(void *base,size_t num,size_t width, int (__cdecl *compare )(const void *, const void *) );第一个是数组地址,第二是数组大小,第三个是数组中每个元素的字节数,最后一个是个函数指针原创 2016-12-05 23:57:14 · 365 阅读 · 0 评论 -
博弈论-巴什博弈
HDOJ Public SalePublic SaleTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3168 Accepted Submission(s): 1948Problem原创 2017-04-02 11:21:38 · 340 阅读 · 0 评论 -
博弈论-巴什博弈
HDOJ Brave GameBrave Game Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)原创 2017-04-02 11:47:20 · 495 阅读 · 0 评论 -
博弈论-威仕夫博弈
HDOJ 取石子游戏(威佐夫博弈) 取石子游戏 Time Limit: 2000/1000 MS (Java/Others) Memory Limit:转载 2017-04-04 08:22:13 · 459 阅读 · 0 评论 -
博弈论-尼姆博弈
尼姆博弈(Nimm's Game)题型尼姆博弈模型,大致上是这样的:有3堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取1个,多者不限,最后取光者得胜。 分析1、首先自己想一下,就会发现只要最后剩两堆物品一样多(不为零),第三堆为零,那面对这种局势的一方就必败。那我们用(a,b,c)表示某种局势,首先(0,0,0)显然是必败态,无论谁面对(0,0,0原创 2017-04-04 09:07:48 · 9062 阅读 · 3 评论 -
博弈论-斐波那契博弈
斐波那契博弈原型:有一堆物品,两人轮流取物品,先手最少取一个,至多无上限,但不能把物品取完,之后每次取的物品数不能超过上一次取的物品数的二倍且至少为一件,取走最后一件物品的人获胜。结论是:先手胜当且仅当n不是斐波那契数(n为物品总数)取石子游戏转载 2017-04-04 09:24:34 · 768 阅读 · 0 评论 -
中国剩余定理和欧几里得定理
中国剩余定理和欧几里得定理 中国剩余定理 定理描述:中国剩余定理:求解同余式组的方法。例如下面的一元线性同余方程组:x ≡ a1 (mod m1)x ≡ a2 (mod m2)x ≡ a3 (mod m3) . . .原创 2016-01-22 14:43:06 · 1147 阅读 · 0 评论 -
2013年蓝桥杯决赛试题
DNA配匹题目描述 脱氧核糖核酸即常说的DNA,是一类带有遗传信息的生物大分子。它由4种主要的脱氧核苷酸(dAMP、dGMP、dCMT和dTMP)通过磷酸二酯键连接而成。这4种核苷酸可以分别记为:A、G、C、T。 DNA携带的遗传信息可以用形如:AGGTCGACTCCA.... 的串来表示。DNA在转录复制的过程中可能会发生随机的偏差,原创 2015-05-16 21:18:53 · 709 阅读 · 0 评论 -
递推—排队购票
排队购票1. 问题提出 一场球赛开始前,售票工作正在紧张的进行中。每张球票为50元,现有30个人排队等待购票,其中有20 个人手持50元的钞票,另外10个人手持100元的钞票。假设开始售票时售票处没有零钱,求出这30个人排队购票,使售票处不至出现找不开钱的局面的不同排队种数。(约定:拿同样面值钞票的人对换位置后为同一种排队。)2.递归设计要点 我们考虑原创 2015-04-05 21:33:54 · 3158 阅读 · 0 评论 -
2014年第五届蓝桥杯预赛部分题目—蚂蚁感冒
长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。 请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。【数据格式】 第一行输入一个整数n (1 接着的一行是n个原创 2015-04-05 20:58:43 · 448 阅读 · 0 评论 -
快速排序与选择
1 快速排序1. 排序概述排序就是将一组数据按需要排列成一个有序序列,是数据处理中一种重要的运算。排序分为升序与降序。通常把待排序的n个数据存放在一个数组中,排序后的n个数据仍存放在这n个数组元素中。最简单的排序是把存放在数组的n个数据逐个比较,必要时进行数据交换。当i=1时,r[1]分别与其余n-1个数据r[j](j=2,3,…,n)比较,若r[i]>r[j],借助变量t实施交换,原创 2015-04-05 21:06:12 · 733 阅读 · 0 评论 -
整数划分问题
整数划分问题 正整数s(简称为和数)的划分(又称分划或拆分)是把s分成为若干个正整数(简称为零数或部分)之和,划分式中允许零数重复,且不记零数的次序。试求s=12共有多少个不同的划分式?展示出所有这些划分式。1 整数划分递推设计1.探索划分的递推关系为了建立递推关系,先对和数k较小时的划分式作观察归纳:k=2:1+1;2k=3:1+1+1;1+2;3原创 2015-04-05 21:21:25 · 3490 阅读 · 0 评论 -
归并排序
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp] view plainc转载 2015-04-05 22:30:30 · 437 阅读 · 0 评论 -
2014年第五届蓝桥杯预赛部分题目—李白打酒
话说大诗人李白,一生好饮。幸好他从不开车。 一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱: 无事街上走,提壶去打酒。 逢店加一倍,遇花喝一斗。 这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。 请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次原创 2015-04-05 20:55:17 · 564 阅读 · 0 评论 -
递归—排列组合的实现
排列组合的实现 排列组合是组合数学的基础,从n个不同元素中任取m个,约定1<m≤n,按任意一种次序排成一列,称为排列,其排列种数记为A(n,m)。从n个不同元素中任取m个(约定1<m<n)成一组,称为一个组合,其组合种数记为C(n,m)。计算A(n,m)与C(n,m)只要简单进行乘运算即可,要具体展现出排列的每一列与组合的每一组,决非轻而易举。本节应用递归设计来具体实现排列原创 2015-04-05 21:26:13 · 2221 阅读 · 0 评论 -
穷举算法—素数幻方
素数幻方1. 案例提出 通常的n阶幻方由1,2,...,n2构成的各行、各列与两对角线之和均相等n行n列方阵。素数幻方全是由素数构成的各行、各列与两对角线之和均相等方阵。试寻求9个素数,构造一个3阶素数幻方,使得该素数方阵中3行、3列与两对角线上的3个素数之和均等于给定的整数s。2. 设计要点 (1) 数学建模设幻方正中间数为n,幻和(即每行,每列原创 2015-04-06 17:35:53 · 4298 阅读 · 0 评论 -
Catalan数列
Catalan数列Catalan公式: f(n)=f(1)*f(n-1)+f(2)*f(n-2)+f(3)*f(n-3)+......+f(n-1)*f(1) 前16个:1 1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845 (在处理数据的过程中应该用到高精度)看原创 2015-05-13 22:26:34 · 1114 阅读 · 0 评论 -
蓝桥杯练习系统算法提高—最大乘积
最大乘积 问题描述 对于n个数,从中取出m个数,如何取使得这m个数的乘积最大呢?输入格式 第一行一个数表示数据组数 每组输入数据共2行: 第1行给出总共的数字的个数n和要取的数的个数m,1 第2行依次给出这n个数,其中每个数字的范围满足:a[i]的绝对值小于等于4。输出格式 每组数据输出1行,为最大的乘积。样例输入15原创 2015-05-27 19:57:39 · 2422 阅读 · 0 评论 -
最优子矩阵问题
最优子矩阵是建立在数列连续最大和的基础上的。所谓最优子矩阵,就是指在一个n*m二维的矩阵中,确定一个小的矩阵,使这个小矩阵中所有元素的和最大。思考一下最优子矩阵和连续最大和的异同:1、 所求的和都具有连续性;2、 连续最大和是一维问题,最优子矩阵是二维问题另外,对于一个矩阵而言,如果我们将连续k行的元素纵向相加,并对相加后所得的数列求连续最大和,则此连续最大和就是一个行数为k的原创 2015-05-26 23:31:20 · 764 阅读 · 0 评论 -
等待解决的ACM题目
问题描述给定平面上n个点。求两条直线,这两条直线互相垂直,而且它们与x轴的夹角为45度,并且n个点中离这两条直线的曼哈顿距离的最大值最小。两点之间的曼哈顿距离定义为横坐标的差的绝对值与纵坐标的差的绝对值之和,一个点到两条直线的曼哈顿距离是指该点到两条直线上的所有点的曼哈顿距离中的最小值。输入格式第一行包含一个数n。接下来n行,每行包含两个原创 2015-05-27 15:26:00 · 802 阅读 · 0 评论 -
排序算法—快速排序详解
快速排序是冒泡排序的改进版,也是最好的一种内排序,在很多面试题中都会出现,也是作为程序员必须掌握的一种排序方法。思想:1.在待排序的元素任取一个元素作为基准(通常选第一个元素,但最的选择方法是从待排序元素中随机选取一个作为基准),称为基准元素; 2.将待排序的元素进行分区,比基准元素大的元素放在它的右边,比其小的放在它的左边; 3.对左右两个分区重复转载 2017-12-06 08:09:54 · 292 阅读 · 0 评论