- 博客(66)
- 收藏
- 关注
原创 算符优先分析的设计与实现
1实验目的构造算符优先分析器,利用它进行语法分析,判断给出的符号串是否为该文法识别的句子,了解算符优先分析方法是严格的从左向右扫描,和自底向上的语法分析方法。2.实验要求输入文法G的非终结符、终结符和产生式;(0)判断输入的文法是否为算符文法;(1)输出文法G的所有非终结符的FIRSTVT集;(2)输出文法G的所有非终结符的LASTVT集;(3)构造算符优先分析表;(4)判断是否...
2019-12-16 16:26:13
3943
原创 C#随机生成中文验证码或英文和数字验证码
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Drawing.Drawing2D;using System.Linq;using System.Text;using Syste...
2019-10-24 15:40:58
575
原创 01背包,完全背包,多重背包,混合背包
主要参考内容如下算法竞赛入门经典(第二版)完全&多重背包问题讲述了01背包,完全背包,多重背包之间的关系背包九讲-整合版讲述的全面,但有些细节都是默认你是知道的下面见习题1267:【例9.11】01背包问题时间限制: 1000 ms 内存限制: 65536 KB提交数: 9143 通过数: 5641 【题目描述】一个旅行者有一个最多能装 M ...
2019-08-22 15:15:04
683
原创 1219:马走日
1219:马走日时间限制: 1000 ms 内存限制: 65536 KB提交数: 5462 通过数: 2810 【题目描述】马在中国象棋以日字形规则移动。请编写一段程序,给定n×m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。【输入】第一行为整数T(T < 10),表示测试数据组数...
2019-08-15 20:21:13
485
原创 1218:取石子游戏
1218:取石子游戏时间限制: 1000 ms 内存限制: 65536 KB提交数: 4462 通过数: 2049 【题目描述】有两堆石子,两个人轮流去取。每次取的时候,只能从较多的那堆石子里取,并且取的数目必须是较少的那堆石子数目的整数倍,最后谁能够把一堆石子取空谁就算赢。比如初始的时候两堆石子的数目是25和7。25 7 --> 11 7 --&g...
2019-08-15 19:47:25
412
原创 Prime Ring Problem uva 524
回溯法的应用# include<iostream># include<cstring>using namespace std;const int maxn=100+5;bool isprim[maxn];int a[maxn]; int n; bool vis[maxn];bool prim(int i){ for(int j=2;j<i;j++...
2019-08-15 19:05:50
180
原创 1217:棋盘问题
1217:棋盘问题时间限制: 1000 ms 内存限制: 65536 KB提交数: 5347 通过数: 2490 【题目描述】在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放 k 个棋子的所有可行的摆放方案 C。【输入】输入含有多组测试数据...
2019-08-15 19:00:27
731
原创 1212:LETTERS
1212:LETTERS时间限制: 1000 ms 内存限制: 65536 KB提交数: 9012 通过数: 3888 【题目描述】给出一个roe×colroe×col的大写字母矩阵,一开始的位置为左上角,你可以向上下左右四个方向移动,并且不能移向曾经经过的字母。问最多可以经过几个字母。【输入】第一行,输入字母矩阵行数RR和列数SS,1≤R,S≤201≤R,...
2019-08-12 11:28:58
1487
原创 1330:【例8.3】最少步数
1330:【例8.3】最少步数时间限制: 1000 ms 内存限制: 65536 KB提交数: 4745 通过数: 2459 【题目描述】在各种棋中,棋子的走法总是一定的,如中国象棋中马走“日”。有一位小学生就想如果马能有两种走法将增加其趣味性,因此,他规定马既能按“日”走,也能如象一样走“田”字。他的同桌平时喜欢下围棋,知道这件事后觉得很有趣,就想试一试,在一个...
2019-08-10 16:05:37
1027
原创 1248:Dungeon Master
1248:Dungeon Master时间限制: 1000 ms 内存限制: 65536 KB提交数: 3686 通过数: 1481 【题目描述】这题是一个三维的迷宫题目,其中用‘.’表示空地,‘#’表示障碍物,‘S’表示起点,‘E’表示终点,求从起点到终点的最小移动次数,解法和二维的类似,只是在行动时除了东南西北移动外还多了上下。可以上下左右前后移动,每次都只...
2019-08-10 16:02:33
511
原创 1342:【例4-1】最短路径问题
1342:【例4-1】最短路径问题时间限制: 1000 ms 内存限制: 65536 KB提交数: 6036 通过数: 2633 【题目描述】平面上有n个点(n≤100),每个点的坐标均在-10000~10000之间。其中的一些点之间有连线。若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的直线距离。现在的任务是找出从一点到另一点之间...
2019-08-09 19:16:33
698
原创 1345:【例4-6】香甜的黄油
1345:【例4-6】香甜的黄油时间限制: 1000 ms 内存限制: 65536 KB提交数: 2517 通过数: 1113 【题目描述】农夫John发现做出全威斯康辛州最甜的黄油的方法:糖。把糖放在一片牧场上,他知道N(1≤N≤500)只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。当然,他将付出额外的费用在奶牛上。农夫John很狡猾。像以前的巴甫洛夫...
2019-08-08 18:52:09
657
原创 1379:热浪(heatwv)
1379:热浪(heatwv)时间限制: 1000 ms 内存限制: 65536 KB提交数: 2256 通过数: 1164 【题目描述】德克萨斯纯朴的民眾们这个夏天正在遭受巨大的热浪!!!他们的德克萨斯长角牛吃起来不错,可是他们并不是很擅长生產富含奶油的乳製品。Farmer John此时以先天下之忧而忧,后天下之乐而乐的精神,身先士卒地承担起向德克萨斯运送大量的...
2019-08-08 16:42:04
927
原创 1378:最短路径(shopth)
1378:最短路径(shopth)时间限制: 1000 ms 内存限制: 65536 KB提交数: 2329 通过数: 850 【题目描述】给出一个有向图G=(V, E),和一个源点v0∈V,请写一个程序输出v0和图G中其它顶点的最短路径。只要所有的有向环权值和都是正的,我们就允许图的边有负值。顶点的标号从1到n(n为图G的顶点数)。【输入】第1行:一个正数...
2019-08-08 15:27:46
859
原创 1380:分糖果
1380:分糖果(candy)时间限制: 1000 ms 内存限制: 65536 KB提交数: 2596 通过数: 695 【题目描述】童年的我们,将和朋友分享美好的事物作为自己的快乐。这天,C小朋友得到了Plenty of candies,将要把这些糖果分给要好的朋友们。已知糖果从一个人传给另一个人需要1 秒的时间,同一个小朋友不会重复接受糖果。由于糖果足够多,...
2019-08-07 13:57:21
793
原创 最短路(spfa)
1382:最短路(Spfa)时间限制: 1000 ms 内存限制: 65536 KB提交数: 3502 通过数: 1013 【题目描述】给定 MM 条边, NN 个点的带权无向图。求 11到 NN 的最短路。【输入】第一行:N,M(N≤100000,M≤500000)接下来MM行33个正整数:ai,bi,ci表示ai,bi之间有一条长度为ci的路,ci≤1...
2019-08-06 20:47:40
684
原创 dijsktra(邻接表实现,贪心算法)
# include<iostream># include<cstring># define inf 0x3f3f3f3f# define nil -1using namespace std;const int maxn=100+5;typedef struct arcnode{ int adjnode; int weight; arcnode *nexta...
2019-08-04 18:35:54
225
原创 单源最短路径(有向无环图)
1适用于有向无环图求最短路径2将算法稍微改进,即可求关键路径3运行时间与邻接表的大小呈线性关系算法思想:1:对图进行拓扑排序;2 :init_signal_source(g, s);3:按拓扑序列取出的顶点v,对与v相邻的顶点u进行relax(v,u,w);# include<iostream># include<cstring># include<...
2019-08-04 16:10:27
630
原创 单源最短路径(bellman算法)
# include<iostream># define inf 0x3f3f3f3f# define nil -1using namespace std;const int maxn=100+5;typedef struct arcnode{ int adjnode; int weight; arcnode *nextarc;}arcnode;typedef str...
2019-08-04 15:26:55
272
原创 关键路径criticalpth(dfs)
# include<iostream># include<queue># include<cstring># include<stack># include<vector>using namespace std;const int maxn=100+5;typedef struct arcnode{ int adjnode...
2019-08-02 19:44:31
282
原创 关键路径criticalpath(邻接矩阵建图+bfs)
# include<iostream># include<queue># include<cstring># include<stack> # define inf 0x3f3f3f3fusing namespace std;const int maxn=50;typedef struct node{ int adj; //...
2019-08-02 17:49:31
938
原创 关键路径(CRITICALPATH 邻接表建图)
# include<iostream># include<queue># include<cstring># include<stack>using namespace std;const int maxn=100+5;typedef struct arcnode{ int adjnode; int weight; arcnode ...
2019-08-02 16:07:20
771
原创 kruskal算法(使用并查集+贪心算法)
# include<iostream># include<cstring># define inf 0x3f3f3f3fusing namespace std;const int maxn=100+5;typedef struct node{ int adj; //顶点之间的权重 }node;typedef struct graph{ int vertex...
2019-07-31 20:01:40
349
原创 用于不相交集合的数据结构(并查集)
一,两个重要操作:(1)找出给定元素所属的集合(2)合并两个集合二,原理:保持一组不相交的动态集合s={s1,s2,…sk}。每个集合通过一个代表来识别,代表即集合中的某个元素三,操作(1)MAKE-SET(X):建立一个新的集合,其唯一成员就是x(因各集合是不相交的,故要求x没有在其他集合中出现过)(2)UNION(X,Y):将包含x和y的动态集合合并为一个新的集合(3)FIND-S...
2019-07-30 22:34:53
362
原创 prim算法生成最小生成树(邻接表建图)
# include<iostream># include<cstring>using namespace std;# define inf 0x3f3f3f3f# define nil -1const int maxn=100+5;typedef struct arcnode{ int adjnode; int weight; //边的权重 arc...
2019-07-29 15:46:11
1620
2
原创 prim算法最小生成树
# include<iostream># include<cstring># define inf 0x3f3f3f3fusing namespace std;const int maxn=100+5;typedef struct node{ int adj; //顶点之间的权重 }node;typedef struct graph{ int vertex...
2019-07-29 09:16:17
190
原创 拓扑排序(dfs)邻接表建图
# include<iostream># include<queue># include<vector># include<cstring>using namespace std;const int maxn=100+5;//定义弧的数据结构 typedef struct arcnode{ int adjnode; //该弧指向...
2019-07-23 15:13:58
300
原创 拓扑排序(dfs)
# include<iostream># include<cstring># include<vector>using namespace std;const int maxn=50;typedef struct node{ int adj; //顶点之间的关系 }node;typedef struct graph{ int vert...
2019-07-23 14:52:30
1214
原创 拓扑排序邻接表建图(bfs)
# include<iostream># include<queue># include<vector># include<cstring>using namespace std;const int maxn=100+5;//定义弧的数据结构 typedef struct arcnode{ int adjnode; //该弧指向...
2019-07-22 21:06:05
245
原创 拓扑排序topological sort (bfs思想)
# include<iostream># include<queue># include<cstring>using namespace std;const int maxn=50;typedef struct node{ int adj; //顶点之间的关系 }node;typedef struct graph{ int verte...
2019-07-22 17:41:21
349
原创 迷宫问题(bfs)
定义一个二维数组:int maze[5][5] = {0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。【输入】一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。【输出】左上角到右下角的最...
2019-07-21 15:01:12
193
原创 细胞bfs&&dfs练习
一矩形阵列由数字00到99组成,数字11到99代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。如:阵列4 100234500067103456050020456006710000000089有44个细胞。【输入】第一行为矩阵的行nn和列mm;下面为一个n×mn×m的矩阵。【输出】细胞个数。【输入样例】4 1002345000...
2019-07-19 20:47:32
197
原创 dijkstra求单源最短路径
//集合S:已计算出最短路径的集合//集合V:未计算出最短路径的集合. //从集合V中选出最短路径的顶点,加入集合S中,并利用刚选的最短路径更新V中的最短路径。 # include<iostream># include<cstring># include<stack>using namespace std;# define INF 0x3f3f3f...
2019-07-19 17:47:50
396
原创 图的建立与遍历(邻接表)
# include<iostream># include<cstring># include<queue>using namespace std;const int maxn=100;typedef struct arcnode{ int adjvex; //该弧指向顶点位置 struct arcnode* nextarcs; //指向下一...
2019-07-14 14:45:07
512
原创 二叉树的几种存储方式(一个数组,指针形式,两个数组)
用一个数组存储完全二叉树 若一个根节点索引为k,则其左子树索引为2k,右子树索引为2k+1;见下一题 题目来自UVA679# include<iostream># include<cstring>using namespace std;/*input:树的深度 D , the number of balls:ioutput:最后一个小球的位置;节点为0,走...
2019-07-13 19:28:56
2935
原创 图的建立及遍历(基于邻接矩阵)
# include<iostream># include<cstring># include<queue>using namespace std;const int maxn=100;bool visit[maxn];typedef struct node{int adj;//边之间关系 }arccell; //此处有的教材加了个 adj[m...
2019-07-13 19:10:16
302
原创 算法训练 最大最小公倍数
/*问题描述已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。输入格式输入一个正整数N。输出格式输出一个整数,表示你找到的最小公倍数。样例输入9样例输出504数据规模与约定1 <= N <= 106。*///思路1枚举 (不推荐) 思路2 找出3个最大且互质的数。// 如何去找3个最大且互质的数//若n为奇数,则n, (n-1)...
2019-03-30 13:11:12
180
原创 堆排序(大顶堆)
# ifndef maxheap# define maxheap# include<iostream>using namespace std;const int capacity=100;class maxHeap{ public: maxHeap() { heap=new int [capacity]; heapsize=0; ...
2019-03-16 11:16:53
169
原创 扑克序列
标题:扑克序列A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。请填写出所有符合要求的排列中,字典序最小的那个。例如:22AA3344 比 A2A23344 字典序小。当然,它们都不是满足要求的答案。# include<iostream># include<...
2019-03-13 23:29:01
203
原创 李白打酒
标题:李白打酒话说大诗人李白,一生好饮。幸好他从不开车。一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:无事街上走,提壶去打酒。逢店加一倍,遇花喝一斗。 这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。 请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbab...
2019-03-06 22:37:37
340
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人