- 博客(34)
- 资源 (4)
- 收藏
- 关注
原创 插入排序
#includeusing namespace std; void Insert_Sort(int array[], int len){//在未排序的数中选举一个数插入已经排好序的数组中 for (int i = 1; i < len; i++) { int k = i; int tmp = array[k]; for (int j = i - 1; j >= 0; j--
2015-03-07 19:56:28
481
原创 选择排序
#includeusing namespace std;void Select_Sort(int array[], int len){//算法思想:每次从待排序的序列中选举最大(最小)的一个数放在第一个位置 for (int i = 0; i < len; i++) { for (int j = i + 1; j < len; j++) { int tmp; if
2015-03-07 19:11:07
400
原创 poj并查集
这两天学习了下并查集,顺便A了几题,感觉大体都是一样的,主要是对3个函数的应用,makeset(),find(),unionset().这里直接把我A的题目给出来。。。都是简单的。。。,后面的题目会继续A的。。。。poj2524:#includeint fa[50005];int rank[50005];int n,m,result;int make(int x){ fa[x]
2013-08-06 09:05:40
905
原创 poj1328
题目大意:给定几个点,求用几个雷达能覆盖全部的点,输入的点为坐标,雷达的半径首先给定!贪心求解:#include#includedouble x[1005],y[1005];double left[1005],right[1005];double r;int n,flag,test;int main(){ test=1; while(scanf("%d%lf",&n,&r
2013-08-06 08:56:24
653
原创 poj3295-Tautology
/*大致题意:输入由p、q、r、s、t、K、A、N、C、E共10个字母组成的逻辑表达式,其中p、q、r、s、t的值为1(true)或0(false),即逻辑变量;K、A、N、C、E为逻辑运算符,K --> and: x && yA --> or: x || yN --> not : !xC --> implies : (!x)||yE --> equals
2013-07-22 22:59:40
677
原创 模式匹配的几种算法(含KMP算法)
#include#include#includeint failure[100];//失配函数int strmatch_bf(char *s,char *t){ //简单模式匹配,基本思想:将s和t进行比较,如果相等继续比较,否则t从头开始,s从i-j+1开始 int i,j; i=j=0; while((i < int(strlen(s))) && (j < int(strle
2013-07-15 16:20:24
994
原创 多项式相乘与相加演示
#include#includetypedef struct node{ int p; int e; struct node *next;}Polynomial,*P_Polynomial;P_Polynomial Input(){//输入多项式 P_Polynomial p1,p2,head; head=p2=(P_Polynomial)malloc(sizeof(
2013-07-15 14:22:57
1037
原创 数据结构课程设计-发牌程序1
#include#include#include#includevoid creatrand(int result[]){ int i,j,n; int start[52]={0,1,2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,
2013-06-18 13:05:14
1156
原创 数据结构课程设计-大数相乘
#include#include#define MAXSIZE 500typedef struct node{ int data[MAXSIZE]; int length;}SeqList,*PSeqList;PSeqList Init_Seqlist(){ PSeqList PL; PL=(PSeqList)malloc(sizeof(SeqList)); if(PL)
2013-06-17 10:58:39
1577
原创 poj2488-搜索
判断给定的棋盘,马是否能遍历完所有的点,能遍历完就打印路径,否则输出不可能!代码:#include#includeint movex[8]={-2,-2,-1,-1,1,1,2,2};int movey[8]={-1,1,-2,2,-2,2,-1,1};//这个顺序不能变 int flag;//是否可能的标志量int a,b;//给定棋盘大小int pathx[26],path
2013-05-04 21:21:44
708
原创 poj1111-搜索
#include#includechar maze[25][25];int map[25][25];int visit[25][25];int movex[8]={0,0,1,-1,1,1,-1,-1};int movey[8]={1,-1,0,0,1,-1,1,-1};int m,n,s,t,l;void dfs(int a,int b){//深度搜索 int x,y,i;
2013-05-04 09:17:51
630
原创 杭电1312-搜索
深度优先搜索:#include#include#includeint n,m;int hash[30][30];//记录是否是。 char map[30][30];//迷宫,要初始化 void DFS(int x,int y){ if(x>n||y>m||hash[x][y]||map[x][y]=='#') return;//走过了,则
2013-04-26 20:52:23
1183
原创 二叉树的非递归实现
#include#include#include//栈的存储结构typedef struct bnode{ char data; struct bnode *left,*right;}Bnode,*BTree;typedef struct node{ BTree data; struct node *next;}StackNode,*PStackNode;typed
2013-04-26 11:17:29
647
原创 杭电1242-搜索专题&&迷宫问题
本题和前面搜索题目有一点区别,前面的题目都是从起点开始搜索,而本题是从终点开始搜索,因为起点不止一个!!!!题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1242AC代码:#include#includeint m,n,flag,min;int startx,starty,endx,endy;int movex[]={1,0,-1
2013-04-24 20:26:11
767
原创 杭电1241-搜索专题&&迷宫问题
dfs()水题:#include#includeint m,n;char maze[105][105];int dfs(int a,int b){//深度遍历图结构,遍历完一次,说明图的区块加1 , int i; int x,y; int movex[]={-1,0,1,-1,1,-1,0,1}; int movey[]={1,1,1,0,0,-1,-1,-1}; if(
2013-04-23 08:54:58
787
原创 杭电1010-搜索&&迷宫问题
迷宫问题,注意剪枝!!!AC代码:#include#includeint n,m,t,flag;int startx,starty,endx,endy,starttime,wallnum;int movex[]={0,-1,0,1},movey[]={-1,0,1,0};//char maze[10][10];int abs(int a,int b){ int c; c=
2013-04-22 17:06:32
798
原创 杭电1239—搜索
题目大意: a.给定整数m,a,b(4 1 b.需要找到两个数(不妨设为p,q)满足以下条件: p,q均为质数; p*q a/b c.输出所有满足以上条件的p,q中乘积最大的一对p,q实现代码1(本人的):#include#includeint is_prime(int n){//判断是否是素数,是
2013-04-21 17:33:05
669
原创 杭电1238—搜索入门题目&&字符串处理
开始感觉这题很简单,直接暴力就行!!!但是显而易见,暴力是解决不了问题的,,特别是这题作为亚洲区预选赛的题目、、、、就更没那么容易过了。题目大意是这样的:给定一些字符串,类似最长公共子串,但是有点不同的是这题要考虑反串的情况,即如果反串满足最长子串,那同样是可以的。。。 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1238
2013-04-21 15:15:32
754
原创 poj2503-字典树&&二分查找&&快速排序
一看这个题目第一感觉很水,但是当把代码写了,,,交上去,,超时!!!应该早就想到的,,现在哪里那么多水题啊。。。。言归正传:题目的意思就输入一系列单词两两对应,相当于一个单词是另外一个解释!要你输出一个单词,看是否前面输入中有他的解释!!!!二分查找代码:#include const int MAX = 100001;typedef struct{ char e[11]
2013-04-19 21:00:40
767
原创 栈实现两个大数相加
#include#include#define MAX 100typedef struct { char data[MAX]; int top;}SeqStack,*PSeqStack;//创建一个空栈PSeqStack Init_Seqstack(){ PSeqStack S; S=(PSeqStack )malloc(sizeof(SeqStack)); if(S )
2013-04-19 19:10:52
1250
原创 三元祖实现矩阵转换2-(跳着找,顺着存)
代码:#include#includetypedef struct { int i,j; int v;//值}triple;typedef struct{ triple data[100]; int m,n,t;//行数,列数,元素数}tripletable;tripletable transmatrix(tripletable a){ tripletable b;
2013-04-10 20:51:39
977
原创 三元组实现矩阵转换1-(跳着找,顺着存)
代码:#include#includetypedef struct { int i,j; int v;//值}triple;typedef struct{ triple data[100]; int m,n,t;//行数,列数,元素数}tripletable;tripletable transmatrix(tripletable a){ tripletable b;
2013-04-10 20:14:05
1519
原创 简单树状数组-poj2352
【树状数组】数星星(POJ2352 star)Time Limit:1000MS Memory Limit:65536KTotal Submit:23 Accepted:16 题目:http://poj.org/problem?id=2352Description 天文学家经常观察星象图。星象图中用平面上的点来表示一颗星星,每一颗星星都有一个笛卡尔坐标。设定星星的等级为其
2013-04-04 11:10:49
789
原创 二叉树的遍历递归实现
实现代码:(已通过VC++调试通过)#include#includetypedef struct bnode{ char data; struct bnode *lchild,*rchild;}Bnode,*BTree;BTree CreatTree(){//按先序创建二叉树 char ch; BTree T; ch=getchar();//输入节点 if(ch=='#
2013-03-31 20:50:50
679
原创 队列实现杨辉三角打印
利用循环顺序队列打印杨辉三角。杨辉三角的特点是两个腰上的数字都为1,其它位置上的数字是其上一行中与之相邻的两个整数之和。所以在打印过程中,第i行上的元素要由第i-1行中的元素来生成。在循环队列中依次存放第i-1行上的元素,然后逐个出队并打印,同时生成第i行元素并入队列。代码如下:(已通过VC++调试通过)#include#include#define MAXSIZE 100typed
2013-03-29 10:03:57
1993
原创 队列实现对有n个元素的数组循环左移k位
基本思想:利用队列求解将使问题简单化,将数组的0-(k-1)存入队列,然后将数组k-(n-1)依次左移k位,然后顺序出列,具体算法如下:#include#include#define MAXSIZE 100typedef struct { int data[MAXSIZE]; int front,rear;}SeqQueue,*PSeqQueue;PSeqQueue Init_
2013-03-28 21:34:10
3567
原创 KMP算法详解
KMP字符串模式匹配详解来自CSDN A_B_C_ABC 网友KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。一. 简单匹配算法先来看一个简单匹配算法的函数:int Index_BF ( char S [ ], char T [ ], int po
2013-03-27 15:20:21
615
原创 迷宫问题递归解
#include#include#define m 6#define n 8typedef struct { int x,y;}items;//定义方向变量 int path(int maze[][n+2],items move[],int x,int y,int step){ int i; step++; maze[x][y]=step; if(m==x&&n==
2013-03-24 16:22:23
736
原创 杭电1290 切蛋糕
献给杭电五十周年校庆的礼物Problem Description或许你曾经牢骚满腹或许你依然心怀忧伤或许你近在咫尺或许你我天各一方对于每一个学子母校 永远航行在生命的海洋今年是我们杭电建校五十周年,这是一个值得祝福的日子。我们该送给母校一个怎样的礼物呢?对于目前的大家来说,最好的礼物当然是省赛中的好成绩,我不能参赛,就送给学校一个DOOM
2013-03-24 15:51:03
949
原创 迷宫问题的非递归解
问题描述:求迷宫中从一个入口到出口的所有路径是一个经典的程序设计问题。由于计算机解迷宫时,通常用的是“穷举求解”的方法,即从入口出发,顺某一方向向前探索,若能走通,则继续往前走;否则沿原路返回,换一个方向再继续探索,直到所有可能的通路都探索到为止;假如所有可能的通路都探索到而未能到达出口,则所假定的迷宫没有解#include#include#define MAX 100typedef str
2013-03-24 15:45:12
1855
原创 中缀表达式直接求值
基本思想:设两个栈,一个保存操作数,一个保存操作符,其他操作优先级和细节问题与后缀表达式基本相同程序代码: #include#include#define MAX 100typedef struct {//创建操作数栈 int data[MAX]; int top;}SeqStack,*PSeqStack;ty
2013-03-24 10:42:25
1120
1
原创 杭电1297-Children’s Queue
这道题是排序问题,可以用递归方法解决。计算F(n):一:当最后一个是男孩M时候,前面n-1个随便排出来,只要符合规则就可以,即是F(n-1);二:当最后一个是女孩F时候,第n-1个肯定是女孩F,这时候又有两种情况: 1)前面n-2个可以按n-2个的时候的规则来,完全可以,即是F(n-2); 2)但是即使前面n-2个人不是合法的队列
2013-03-23 23:34:00
849
原创 栈实现中缀表达式转为后缀表达式
#include#include#include"zhong.h"typedef struct { char data[100]; int top;}SeqStack,*PSeqStack;//栈的基本操作PSeqStack Init_seqstack(){ PSeqStack S; S=(PSeqStack )malloc(sizeof(SeqStack)); if(S
2013-03-22 20:21:21
886
原创 南阳理工学院题目总结1-括号配对问题
题目大意:判断括号是否匹配AC代码:#include #include int judge(char a,char b)//判断相连的字符是否相等 { if((a=='['&&b==']')||(a=='('&&b==')')) return 1; return 0; } int main() { int n,i,l,f
2012-12-16 09:41:23
498
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人