算法
文章平均质量分 81
chudongfang2015
开心开心!!!!!!
展开
-
蓝桥杯数独游戏——C语言版
题目描述:你一定听说过“数独”游戏。如【图1.png】,玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个同色九宫内的数字均含1-9,不重复。数独的答案都是唯一的,所以,多个解也称为无解。本图的数字据说是芬兰数学家花了3个月的时间设计出来的较难的题目。但对会使用计算机编程的你来说,恐怕易如反掌了。本题的要求就是输入数独题目,程序输出数独的唯一解。我们保证所有...原创 2016-03-19 11:03:30 · 3101 阅读 · 1 评论 -
求组合数算法思想及代码
求组合数,从n个数中拿出m个数,并列出其组合方式:思想:利用递归,一个一个的取出来:例: void combine(int a[],int n,int m,const int M)对 1 2 3 4 5 从这5个数中取出3个从后往前,先取出一个数1 2 3 4 5从加粗的数字中取出一个相应的数 1 2 3 4 5假设取5,把它存在一个原创 2016-03-19 16:34:59 · 881 阅读 · 0 评论 -
过河卒算法
过河卒基本思想:利用动态规划转空间为时间,利用动态规划一般方法,把数据记录下来,同时走两条路线,只要不重合就好#include <cstdio>#include <iostream>#include <cmath>#include <cstring>#define maxx(A,B,C,D) max(max(A,B),max(C,D))using namespace std;int m,n,hear原创 2016-03-09 21:39:21 · 1592 阅读 · 0 评论 -
1219 骑士游历 解答
1219 骑士游历题目描述 Description 设有一个n*m的棋盘(2≤n≤50,2≤m≤50),如下图,在棋盘上有一个中国象棋马。规定:1)马只能走日字2)马只能向右跳问给定起点x1,y1和终点x2,y2,求出马从x1,y1出发到x2,y2的合法路径条数。输入描述 Input Description第一行2个整原创 2016-04-03 14:56:31 · 600 阅读 · 0 评论 -
1010 过河卒
查看运行结果回到问题 最近的错误点信息 运行结果 错误error 错误信息原创 2016-04-03 16:09:08 · 402 阅读 · 0 评论 -
codevs 1017 乘积最大
1017 乘积最大题目描述 Description 今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目: 设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部原创 2016-04-04 11:06:18 · 563 阅读 · 0 评论 -
Hash初步
Hash主要用于信息安全领域中加密算法,它把一些不同长度的信息转化成杂乱的128位的编码,这些编码值叫做HASH值. 也可以说,Hash就是找到一种数据内容和数据存放地址之间的映射关系。 数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的,这就是我们要提起的哈希表,哈希表原创 2016-04-25 16:03:02 · 407 阅读 · 0 评论 -
再探hash——自写哈希程序
基本思想:利用数组链表结合,构建hash表,把相应数据储存进去,便于查找利用来看源码:(已经加上注释)采用了菜单形式:#include#include#include#include#define HASH_SIZE 10//哈希表的大小 typedef struct HashNode{ //哈希表的节点 char key[1000]; char value[原创 2016-04-26 21:39:37 · 1071 阅读 · 0 评论 -
棋盘问题 DFS
A - 棋盘问题Crawling in process...Crawling failedTime Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64uSubmitStatus Description在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子原创 2016-04-27 16:31:02 · 470 阅读 · 0 评论 -
K - 迷宫问题——BFS
K - 迷宫问题Crawling in process...Crawling failedTime Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uSubmitStatus Description定义一个二维数组: int maze[5][5] = {原创 2016-04-27 17:53:43 · 432 阅读 · 0 评论 -
B - Frogger HOJ
B - FroggerTime Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionFreddy Frog is sitting on a stone in the middle of a lake. Suddenly原创 2016-04-29 21:58:34 · 445 阅读 · 0 评论 -
C - Heavy Transportation——HOJ
C - Heavy TransportationTime Limit:3000MS Memory Limit:30000KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionBackground Hugo Heavy is happy. After the breakdown原创 2016-04-29 23:41:29 · 434 阅读 · 0 评论 -
B - The Suspects——HOJ
B - The SuspectsTime Limit:1000MS Memory Limit:20000KB 64bit IO Format:%I64d & %I64uSubmit StatusDescription严重急性呼吸系统综合症( SARS), 一种原因不明的非典型性肺炎,从2003年3月中旬开始被认为是全球威胁。为了减少传播给原创 2016-04-30 14:26:43 · 497 阅读 · 0 评论 -
M - 小希的迷宫——HOJ
M - 小希的迷宫Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit StatusDescription上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认原创 2016-04-30 13:26:39 · 425 阅读 · 0 评论 -
C - How Many Tables——HOJ
C - How Many TablesTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionToday is Ignatius' birthday. He invites a lot of friends. Now原创 2016-04-30 14:46:12 · 539 阅读 · 0 评论 -
并查集三个重要函数
并查集:三个重要函数:#include#include#includeint main(){ return 0; }void make_set()//初始化{ for(int i=1;i<=n;i++) { parent[i]=i; }}int find_set(int x)//寻找祖先{ if(parent[x]!=x) {原创 2016-04-30 16:31:57 · 614 阅读 · 0 评论 -
堆与堆排序
最小堆:所有父节点都比子节点小的完全二叉树最大堆:所有父节点都比子节点大的完全二叉树对于二叉树的知识这里不再赘述操作:把最小数删除,并插入一个数先看代码:void siftdown(int i){ int t,flag=0; while(i*2<=n&&flag==0)//t代表三个里面最小值 { if(h[i*2]>h[i])原创 2016-04-17 17:25:04 · 465 阅读 · 0 评论 -
并查集分析
并查集:不相交集数据结构#include#includevoid init();int getf(int v);void merge(int v,int u);int f[1000],n,m,k,sum; int main(){ int i,x,y; scanf("%d %d",&n,&m); init(); for(i=1;i<=m;i++) {原创 2016-04-17 20:11:57 · 315 阅读 · 0 评论 -
A - Til the Cows Come Home——
A - Til the Cows Come HomeTime Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionBessie is out in the field and wants to get back to原创 2016-04-29 21:52:11 · 579 阅读 · 0 评论 -
A - Apples and Ideas
A - Apples and IdeasTime Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %lluSubmit StatusDescription"If you have an apple and I have an apple and we exchange thes原创 2016-05-02 12:24:55 · 532 阅读 · 0 评论 -
C - Defuse the Bomb
C - Defuse the BombTime Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %lluSubmit StatusDescriptionThe bomb is about to explode! Please defuse it as soon as possi原创 2016-05-02 12:56:30 · 466 阅读 · 0 评论 -
最小生成树--prim算法
最小生成树---prim算法基本思想:任选一个节点为头节点,然后找出离”整个树‘距离最小的节点,纳入树内,直到所有节点都纳入树内。数据结构:数组,邻接矩阵储存图算法思想:基于贪心算法:即每一步都选择当前最优路径。关键:离“整个树”最小: 利用dis[]数组储存来看代码: for(k=1;k<=n;k++)//更新di原创 2016-04-18 19:43:54 · 391 阅读 · 0 评论 -
最小生成树--Kruskal算法
与Prim算法不同,Kruskal算法基于并查集和贪心算法,利用并查集判断其是否存在循环。Kruskal算法基本思想: 对所有边进行排序,优先选取权重小的边,并同时判断其是否联通(利用并查集判断)数据结构:数组算法思想:快排,贪心,递归原创 2016-04-19 17:22:56 · 349 阅读 · 0 评论 -
codevs 1009 产生数 2002年NOIP全国联赛普及组
给出一个整数 n(n 规则: 一位数可变换成另一个一位数: 规则的右部不能为零。 例如:n=234。有规则(k=2): 2-> 5 3-> 6 上面的整数 234 经过变换后可能产生出的整数为(包括原数): 234 534 264 564 共 4 种不同的产生数问题: 给出一个整数 n 和 k 个原创 2016-04-19 18:04:29 · 579 阅读 · 0 评论 -
codevs--1026 逃跑的拉尔夫
逃跑的拉尔夫题目描述 Description 年轻的拉尔夫开玩笑地从一个小镇上偷走了一辆车,但他没想到的是那辆车属于警察局,并且车上装有用于发射车子移动路线的装置。那个装置太旧了,以至于只能发射关于那辆车的移动路线的方向信息。编写程序,通过使用一张小镇的地图帮助警察局找到那辆车。程序必须能表示出该车最终所有可能的位置。小镇的地图是矩形的,上面的符号用来标明哪儿可以行车哪儿不原创 2016-04-22 17:41:47 · 460 阅读 · 0 评论 -
双向BFS初步——c++代码分析
我们从广为人知的POJ 2243这道题谈起:题目大意:给定一个起点和一个终点,按骑士的走法(走日字),从起点到终点的最少移动多少次先看代码:加了注释,然后解释:#include #include #include #include using namespace std;struct knight{ int x,y,step;};in原创 2016-04-22 19:41:00 · 1099 阅读 · 0 评论 -
A - Wireless Network——POJ
A - Wireless NetworkTime Limit:10000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionAn earthquake takes place in Southeast Asia. The ACM (Asi原创 2016-05-07 23:31:12 · 790 阅读 · 0 评论 -
校个人赛——02
A - Infinite SequenceTime Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionVasya likes everything infinite. Now he is studying the pr原创 2016-05-31 21:23:34 · 482 阅读 · 0 评论 -
A - Jungle Roads——POJ
A - Jungle RoadsTime Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionThe Head Elder of the tropical island of Lagrishan has a pro原创 2016-05-08 18:13:00 · 1061 阅读 · 0 评论 -
算法导论_第五章_概率分析和随机算法
算法导论_第五章_概率分析和随机算法本章大概介绍了概率论的知识,都是些理论知识和其部分运用。先来介绍一下雇佣问题:假设你要雇佣一个新的办公室助理,雇佣代理每天想你推荐一个应聘者(连续推荐n个),你面试这个人,如果这个应聘者比目前的办公室助理更优秀,你就会辞掉当前的办公室助理,然后聘用这个新的。面试一个人需付给雇佣代理一笔费用,聘用办公助理也需要费用。原创 2016-06-28 16:53:30 · 1519 阅读 · 0 评论 -
算法导论_第四章_分治策略
算法导论_第四章_分治策略分治的三个步骤:分解:将问题划分为一些子问题,子问题的形式与原问题一样,只是规模更小。解决:递归的求解出子问题。如果子问题足够小,则停止递归,直接求解合并:将子问题的解组合成原问题的解。最大子数组问题:给定数组A,寻找A的和最大的非空连续子数组。可以利用暴力求解,其为Ω(n^2)这里利用分治法解决,其时间复杂度为Θ(n*lg原创 2016-06-28 16:47:44 · 1204 阅读 · 0 评论 -
算法导论_第六章_堆排序
算法导论_第六章_堆排序对于堆排序,我就不着重介绍,这是我写的另一篇介绍堆排序的文章:http://blog.csdn.net/chudongfang2015/article/details/51173902这里贴上代码:#include#include#include int h[1000],n;void swap(int x,int y);void原创 2016-06-28 19:39:20 · 427 阅读 · 0 评论 -
linux小组分享会_遗传算法
遗传算法初步个人理解:所谓遗传算法,是一种随机化算法,像这类随机化算法是从平时生活中总结出来的,而遗传算法就是从生物的遗传之中总结出来的,其思想与生物遗产类似,具体代码可以根据不同问题进行改变。经典例题:旅行商问题(TSP)假设有一个旅行商人要拜访N个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。 路径的选择目原创 2016-06-21 17:15:39 · 4176 阅读 · 18 评论 -
算法导论_第七章_快速排序
算法导论_第七章_快速排序快速排序的描述:与归并排序一样,快速排序也使用了分治思想。下面是对一个数组进行快速排序的三部分治过程:1.分解:数组A[p,r]被划分为两个子数组A[p,q-1]和A[q+1,r],使得A[p,q-1]中的每一个元素都小于等于A[q],而A[q]也小于等于A[q+1,r];2.解决:通过递归调用快速排序,对子数组进行排序。3.合并:因为其是进行原址原创 2016-06-28 23:59:56 · 481 阅读 · 0 评论 -
算法导论_第八章_线性时间排序
算法导论_第八章_线性时间排序排序算法的下界决策树模型决策树是一颗完全二叉树决策树的每个节点代表需要比较的两个数,叶节点为一个数的排序。所以任何正确的排序,n个元素的n!个排列情况都应该出现在叶节点上。比较排序的最坏情况出现在比较次数为决策树的高度,而决策数的高度hΩ(n*lg(n))堆排序和归并排序都是渐进最优的原创 2016-06-29 17:12:14 · 499 阅读 · 0 评论 -
算法导论_第九章_中位数和顺序统计量
算法导论_第九章_中位数和顺序统计量最小值和最大值在一个有n个元素的集合中,至少要n-1次比较才能找到最小值或最大值。如果同时找最大值和最小值,只需要3*(n/2)次比较,因为对于两个数,首先对这两个数进行比较,较大的一个与最大值比较,较小的一个与最小值比较,这样就找到了最大最小值。期望为线性的选择算法利用快排中的分治思想找到第i原创 2016-06-29 17:16:25 · 832 阅读 · 0 评论 -
算法导论_第十章_基本数据结构
算法导论_第十章_基本数据结构队列和栈:队列为先进先出,栈为先进后出。其可以用数组和链表实现。队列代码如下:/************************************************************************* > File Name: queue.cpp > Author:chudongfang原创 2016-06-30 15:33:28 · 589 阅读 · 0 评论 -
MD5加密算法详细分析_C实现
MD5加密算法维基百科对其描述:MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由罗纳德·李维斯特设计,于1992年公开,用以替换MD4算法。这套算法的程序在 RFC 1321 中被加以规范。将数据(如一原创 2016-06-22 23:14:48 · 11979 阅读 · 6 评论 -
算法导论_第三章_函数的增长
函数的增长1.渐进记号Θ定义:对于一个给定的函数g()用Θ(g(n))来表示以下函数的集合Θ(g(n))={f(n):存在正常量c1、c2和N,使得对所有的n>=N,有0注:这里我们通常已知f(n)求g(n)函数如下图:这时我们称g(n)是f(n)的一个渐进紧确界即当n逐渐变大的时候,对于f(n),只需取f(n原创 2016-06-23 19:10:18 · 1943 阅读 · 0 评论 -
kuangbin——线段树专题 A - 敌兵布阵
A - 敌兵布阵Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionLily 特别喜欢养花,但是由于她的花特别多,所以照料这些花就变得不太容易。她把她的花依次排成一行,每盆花都有一个美观值。如果Lily把原创 2016-08-04 11:45:38 · 968 阅读 · 0 评论