算法
打铁选手
这个作者很懒,什么都没留下…
展开
-
括号匹配问题(栈)
根据栈的先进后出特点 将遇到的左括号依次压入栈中 遇到右括号时取出栈顶元素(退栈处理) 比较栈顶元素和输入的括号是否想匹配 注意 1.判断的字符串流的奇偶性 2.注意输入的字符是否为所需的括号字符 3.考虑栈的栈顶和栈底是否溢出 4.栈在开始和结束时都应该是空的.所以匹配到最后还要判断栈是否为空,若非空,则匹配失败#include<stdio.h>#include<string.h原创 2017-09-24 21:16:03 · 1111 阅读 · 0 评论 -
模板
#include <bits/stdc++.h>using namespace std;//#define INF MAX_INT//copy(buf,n,str.c_str)//string转char//sscanf(buf,"%d%d",&a,&b)//串输入处理//sprintf(but,"%.2lf",n)//double转char * //char...原创 2019-03-23 20:16:46 · 223 阅读 · 0 评论 -
骗分导论
转自洛谷目录第1章 绪论第2章 从无解出发无解情况样例——白给的分数第3章 “艰苦朴素永不忘”模拟万能钥匙——DFS第4章 骗分的关键——猜想听天由命猜测答案寻找规律小数据杀手——打表第5章 做贪心的人贪心的算法贪心地得分第6章 C++的福利快速排序“如意金箍棒”第7章 “宁为玉碎,不为瓦全”第8章 实战演练第9章 结语第1章 绪...转载 2019-03-15 16:57:48 · 1418 阅读 · 0 评论 -
读入优化
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对于输入数据非常大的一些可(变)爱(态)题目,输入占据大量时间的题目。scanf就会大大拖慢程序的运行速度,cin就更不用说了,所以我们要用一种高大上的东西—— 读入优化。读入优化的原理其实就是一个一个字符的读入,再组成数字int read(){ int x=0,f原创 2019-03-11 14:08:30 · 728 阅读 · 0 评论 -
互质数的最大不能组合数
给定A和B,A和B互质,求最大不能组合数,和不能组合数的个数。基础知识:GCD(A, B) =1 ⇒ LCM(A, B) = AB剩余类,把所有整数划分成m个等价类,每个等价类由相互同余的整数组成任何数分成m个剩余类,分别为 mk,mk+1,mk+2,……,mk+(m-1)分别记为{0(mod m)},{1(mod m)}……而n的倍数肯定分布在这m个剩余类中因为GCD(m,n)...原创 2019-03-11 13:42:35 · 1895 阅读 · 0 评论 -
八皇后问题
八皇后问题原始解法DFS#include <iostream>#include<stdio.h> using namespace std;bool vis[9];int str[101][9];int path[9];int coun = 0;int n,k; //int path[]; error1void DFS(int tmp){...原创 2019-03-08 14:42:37 · 127 阅读 · 0 评论 -
单链表逆置
明确题目要求不能使用额外的节点存储空间,额外的节点存储空间做中转。 在不使用额外存储节点的情况下使一个单链表的所有节点逆序? 可以通过迭代循环的思想来处理 使用头指针依次向后遍历,遇到数据结点时将相邻的两个前驱后继的关系进行一个逆置 首先考虑到头节点时空结点,略去头结点并释放 struct node *p= head; head = head -> next原创 2017-09-21 17:41:11 · 461 阅读 · 0 评论 -
迷宫问题(栈)
路径问题和最优路径 如图0为可走位置,1为不可走位置 求解思想: 用栈来实现解决问题,主要步骤是 (1)将迷宫的入口坐标设为当前坐标 (2)将当前坐标压栈,将当前坐标上的值设为-1(0变为-1),代表已走过的路 (3)判断当前坐标的四周(上下左右)是否是可以通(为0则通)的,如果是通的,那就将它的坐标设为当前坐标 (4)重复(2)(3)的操作 (5)若遇到如图1中标注的坐标,四周原创 2017-09-24 21:29:15 · 3639 阅读 · 0 评论