算法笔记
热爱Data的直男熙哥
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CCFCSP 201912-3 化学方程式(70分)
思路 大模拟题,没啥可说的,左右两侧分别计算元素数量,然后用vector(单纯喜欢用而已,很多大佬似乎用map)判断左右是否配平。 遇到左括号,虽然可能存在嵌套情况,但只要找到配套的右括号即可。随后便可以通过括号后面的数字来决定括号里的元素需要乘几倍数。 遇到大写字母,看一下后面有没有小写字母了,然后看后面是否有数据,没有数据就默认乘1 遇到右括号,继续进行即可 遇到加号或者方程一开始,需要找到其后面的数字,有数字则需要相乘,没有数字则代表乘1即可 代码 虽然给的测试用例全部通过,但只拿到了70分,求助原创 2020-11-29 21:48:09 · 316 阅读 · 0 评论 -
二叉树遍历 二叉树推导
Problem C: 二叉树遍历 题目 Description 二叉树的前序、中序、后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树; 中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树; 后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。 给定一棵二叉树的前序遍历和中序遍历,求其后序遍历(提示:给定前序遍历与中序遍历能够唯一确定后序遍历)。 Input 两个字符串,其长度n均小于等于26。 第一行为前序遍历,第二行为中序遍历。 二叉树中原创 2020-10-26 16:46:15 · 375 阅读 · 0 评论 -
Problem B: DFS or BFS? 广度优先搜索应用
Problem B: DFS or BFS? 题目 Description 说好了,题目不黑人。 给你一个8*8的矩阵,你的初始位置是左下角方格(用’U’表示),你的目标位置是右上角的方格(用’A’表示),其余的62个方格,如果是’.’,表示这个方格为空,如果是’S’,表示这个方格有一块大石头。好了现在你开始从左下角出发,每次可以往上,下,左,右,左上,右上,左下,右下移动一个方格,或者你可以原地不动,一共九个动作方式,在你做完一个动作后,所有的大石头会往下掉一个方格(如果一个大石头的位置是(x,y),那下原创 2020-10-26 09:31:43 · 385 阅读 · 4 评论 -
走迷宫
例题:【递归入门】走迷宫 Description 有一个nm格的迷宫(表示有n行、m列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,文件读入这nm个数据和起始点、结束点(起始点和结束点都是用两个数据来描述的,分别表示这个点的行号和列号)。现在要你编程找出所有可行的道路,要求所走的路中没有重复的点,走时只能是上下左右四个方向。如果一条路都不可行,则输出相应信息(用-l表示无路)。 请统一用 左上右下的顺序拓展,也就是 (0,-1),(-1,0),(0,1),(1,0) Input 第一原创 2020-10-25 10:09:22 · 389 阅读 · 0 评论 -
算法笔记 八皇后问题
递归 #include <stdio.h> #include <string.h> #include <cmath> #include <iostream> using namespace std; int tot; bool hashmap[10]={false}; int pos[10]={0}; int Queens[95][9]; void generateQ(int index){ if(index==9){ to原创 2020-09-10 11:27:15 · 225 阅读 · 0 评论 -
算法笔记 栈的应用 简单计算器 中缀和后缀表达式
思路 将输入的中缀表达式转后缀表达式 遇到数字,则算出数值,直接放入队列(注意数据非仅有一位,需要计算出整个数的值) 遇到运算符先判断优先级是否小于栈中top的运算符 如果是,将栈中的运算符pop到队列中,直到栈中没有运算符优先级更大为止 如果不是,则直接将运算符放入栈中 最后如果栈中剩余运算符,则直接放入队列中 计算后缀表达式,遍历队列 如果为数值,则放入栈中 如果为运算符 从栈中pop出两个数(注意是先第二个后第一个,后进先出嘛) 随后运算 最后把计算完成的数放入栈中 代码原创 2020-10-07 20:38:13 · 247 阅读 · 0 评论 -
算法笔记 大整数运算 N的阶乘 大整数排序
大整数相关运算 加法 #include <stdio.h> #include <iostream> #include <string.h> using namespace std; struct bign{ int d[1005]; int len; bign(){ memset(d,0,sizeof(d)); len=0; } }; bign change(char str[]){ bign a原创 2020-10-06 15:43:57 · 480 阅读 · 1 评论 -
算法笔记 练习 完数
题目 Description 求1-n内的完数,所谓的完数是这样的数,它的所有因子相加等于它自身,比如6有3个因子1,2,3,1+2+3=6,那么6是完数。即完数是等于其所有因子相加和的数。 Input 测试数据有多组,输入n,n数据范围不大。 Output 对于每组输入,请输出1-n内所有的完数。如有案例输出有多个数字,用空格隔开,输出最后不要有多余的空格。 Sample Input Copy 6 Sample Output Copy 6 思路 没啥可讲的,就是找到1-n/2的因子然后sum(最大原创 2020-09-22 08:53:17 · 218 阅读 · 0 评论 -
算法笔记 素数 Goldbach’s Conjecture
题目 Description Goldbach’s Conjecture: For any even number n greater than or equal to 4, there exists at least one pair of prime numbers p1 and p2 such that n = p1 + p2. This conjecture has not been proved nor refused yet. No one is sure whether this conjec原创 2020-09-20 16:20:17 · 184 阅读 · 0 评论 -
算法笔记 CodeUp Problem A: 素数
题目 Description 输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。 Input 输入有多组数据。 每组一行,输入n。 Output 输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。 思路 由于n<=10000,所以可以考虑先打素数表再输出 注意:如果没有素数(也就是说n<=11)则输出-1 代码 #inclu原创 2020-09-20 15:54:40 · 266 阅读 · 0 评论 -
算法笔记 分数矩阵
题目 我们定义如下矩阵: 1/1 1/2 1/3 1/2 1/1 1/2 1/3 1/2 1/1 矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增。 请求出这个矩阵的总和。 Input 输入包含多组测试数据。每行给定整数N(N<50000),表示矩阵为N*N。当N=0时,输入结束。 Output 输出答案,结果保留2位小数。 思路 1.Time Limit Exceed 50 计算每次矩阵的数,并且打表 通过n-1的矩阵值推导求出n的矩阵值 最后得到结果 代码: #include &l原创 2020-09-20 11:15:35 · 616 阅读 · 0 评论
分享