![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 52
抠秃秃
这个作者很懒,什么都没留下…
展开
-
中缀表达式转后缀表达式(栈的应用)
中缀表达式就是普通人们最常用的加减乘除式子(或中缀记法)是一个通用的算术或逻辑公式表示方法, 操作符是以中缀形式处于操作数的中间(例:3 + 4),中缀表达式是人们常用的算术表示方法。与q前缀表达式(例:+ 3 4)或h后缀表达式(例:3 4 +)相比,中缀表达式不容易被计算机解析,但仍被许多程序语言使用,因为它符合人们的普遍用法。与前缀或后缀记法不同的是,中缀记法中括号是必需的。计算过程中必须用括号将操作符和对应的操作数括起来,用于指示运算的次序。后缀表达式运算符在运算数后..原创 2022-05-01 11:05:36 · 427 阅读 · 0 评论 -
最短路(Floyd)
前言最短路即求两点之间的最短路径;在学习这个之前得有一些图论基础(建图基础)建图基础课看蓝桥集训之BFS、DFS和链式前向星_MangataTS的博客-CSDN博客懒得写了转博客:(18条消息) 算法小讲堂之最短路算法(Floyd+bellman+SPFA+Dijkstra)_MangataTS的博客-CSDN博客...原创 2022-04-26 13:26:20 · 90 阅读 · 0 评论 -
[USACO19JAN]Icy Perimeter S(DFS,BFS)
题目背景USACO一月月赛银组第二题题目描述Farmer John要开始他的冰激凌生意了!他制造了一台可以生产冰激凌球的机器,然而不幸的是形状不太规则,所以他现在希望优化一下这台机器,使其产出的冰激凌球的形状更加合理。 机器生产出的冰激凌的形状可以用一个N×N(1≤N≤1000)的矩形图案表示,例如:##........#..#..#..#####...###....##每个'.'字符表示空的区域,每个'#'字符表示一块1×1的正方形格子大小的冰激凌。不幸的是,机器当.原创 2022-04-21 09:56:03 · 242 阅读 · 0 评论 -
入门(BFS,DFS)
题目描述不是任何人都可以进入桃花岛的,黄药师最讨厌象郭靖一样呆头呆脑的人。所以,他在桃花岛的唯一入口处修了一条小路,这条小路全部用正方形瓷砖铺设而成。有的瓷砖可以踩,我们认为是安全的,而有的瓷砖一踩上去就会有喷出要命的毒气,那你就死翘翘了,我们认为是不安全的。你只能从一块安全的瓷砖上走到与他相邻的四块瓷砖中的任何一个上,但它也必须是安全的才行。由于你是黄蓉的朋友,她事先告诉你哪些砖是安全的、哪些砖是不安全的,并且她会指引你飞到第一块砖上(第一块砖可能在任意安全位置),现在她告诉你进入桃花岛的秘密就.原创 2022-04-21 08:43:05 · 160 阅读 · 0 评论 -
填涂颜色(BFS)
题目描述由数字00组成的方阵中,有一任意形状闭合圈,闭合圈由数字11构成,围圈时只走上下左右44个方向。现要求把闭合圈内的所有空间都填写成22.例如:6 \times 66×6的方阵(n=6n=6),涂色前和涂色后的方阵如下:0 0 0 0 0 00 0 1 1 1 10 1 1 0 0 11 1 0 0 0 11 0 0 0 0 11 1 1 1 1 10 0 0 0 0 00 0 1 1 1 10 1 1 2 2 11 1 2 2 2 11 2 2 2 2 11 .原创 2022-04-20 18:29:30 · 188 阅读 · 0 评论 -
求细胞数量(DFS)
题目描述一矩形阵列由数字00到99组成,数字11到99代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。输入格式第一行两个整数代表矩阵大小nn和mm。接下来nn行,每行一个长度为mm的只含字符0到9的字符串,代表这个n \times mn×m的矩阵。输出格式一行一个整数代表细胞个数。输入输出样例输入 #1复制4 10023450006710345605002045600671...原创 2022-04-16 17:25:44 · 316 阅读 · 0 评论 -
血色先锋队(BFS)
题目背景巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物。孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重包围,现在他们将主力只好聚集了起来,以抵抗天灾军团的围剿。可怕的是,他们之中有人感染上了亡灵瘟疫,如果不设法阻止瘟疫的扩散,很快就会遭到灭顶之灾。大领主阿比迪斯已经开始调查瘟疫的源头。原来是血色先锋军的内部出现了叛徒,这个叛徒已经投靠了天灾军团,想要将整个血色先锋军全部转化为天灾军团!无需惊讶,你就是那个叛徒。在你的行踪败露之前,.原创 2022-04-16 16:15:11 · 462 阅读 · 2 评论 -
Mzc和男家丁的游戏(BFS)
题目背景mzc与djn的第二弹。题目描述mzc家很有钱(开玩笑),他家有n个男家丁(做过上一弹的都知道)。他把她们召集在了一起,他们决定玩捉迷藏。现在mzc要来寻找他的男家丁,大家一起来帮忙啊!由于男家丁数目不多,再加上mzc大大的找人【laopo】水平很好,所以一次只需要找一个男家丁。输入格式第一行有两个数n,m,表示有n行m列供男家丁躲藏,之后n行m列的矩阵,‘m‘表示mzc,‘d’表示男家丁,‘#’表示不能走,‘.‘表示空地。输出格式一行,若有解:一个数sum,表.原创 2022-04-14 17:43:44 · 114 阅读 · 0 评论 -
离开中山路(BFS)
题目背景《爱与愁的故事第三弹·shopping》最终章。题目描述爱与愁大神买完东西后,打算坐车离开中山路。现在爱与愁大神在x1,y1处,车站在x2,y2处。现在给出一个n×n(n<=1000)的地图,0表示马路,1表示店铺(不能从店铺穿过),爱与愁大神只能垂直或水平着在马路上行进。爱与愁大神为了节省时间,他要求最短到达目的地距离(a[i][j]距离为1)。你能帮他解决吗?输入格式第1行:一个数 n第2行~第n+1行:整个地图描述(0表示马路,1表示店铺,注意两个数之间没有空格.原创 2022-04-14 17:21:02 · 214 阅读 · 0 评论 -
好奇怪的游戏(BFS)
题目背景《爱与愁的故事第三弹·shopping》娱乐章。调调口味来道水题。题目描述爱与愁大神坐在公交车上无聊,于是玩起了手机。一款奇怪的游戏进入了爱与愁大神的眼帘:***(游戏名被打上了马赛克)。这个游戏类似象棋,但是只有黑白马各一匹,在点x1,y1和x2,y2上。它们得从点x1,y1和x2,y2走到1,1。这个游戏与普通象棋不同的地方是:马可以走“日”,也可以像象走“田”。现在爱与愁大神想知道两匹马到1,1的最少步数,你能帮他解决这个问题么?输入格式第1行:两个整数x1,y1.原创 2022-04-14 13:37:12 · 224 阅读 · 0 评论 -
马的遍历(BFS)
题目描述有一个n \times mn×m的棋盘,在某个点(x, y)(x,y)上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步。输入格式输入只有一行四个整数,分别为n, m, x, yn,m,x,y。输出格式一个n \times mn×m的矩阵,代表马到达某个点最少要走几步(左对齐,宽55格,不能到达则输出-1−1)。输入输出样例输入 #1复制3 3 1 1输出 #1复制0 3 2 3 -1 1 ...原创 2022-04-14 11:30:52 · 1372 阅读 · 0 评论 -
二分算法(详细理解)
整数二分基本思想一定注意mid=(l+r)/2还是(l+r+1)/2解题步骤例题789. 数的范围给定一个按照升序排列的长度为nn的整数数组,以及qq个查询。对于每个查询,返回一个元素kk的起始位置和终止位置(位置从00开始计数)。如果数组中不存在该元素,则返回-1 -1。输入格式第一行包含整数nn和qq,表示数组长度和询问个数。第二行包含nn个整数(均在1∼100001∼10000范围内),表示完整...原创 2022-04-06 11:58:41 · 138 阅读 · 0 评论 -
回文日期(NOIP2016)
题目描述 在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。 牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2位代表月 份,最后2位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表 示方法不会相同。 牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。现 在,牛牛想知道:在他指定的两个日期之间包含这两个日期本身),有多少个真实存 在的日期是回文的。 一个8位数字是回文的,当且仅...原创 2022-04-02 21:50:38 · 1064 阅读 · 0 评论 -
字符串数字相互转换
一丶函数stoi() 将字符串转为int类型itos() int转到stringto_string() int转为string二丶用sstream#include <sstream>using namespace std;int istoi(string n){ int num; stringstream ss(n); ss>>num; return num;}string iitos(int n){ string..原创 2022-03-31 09:28:09 · 400 阅读 · 0 评论 -
棋盘问题(dfs)
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n当为-1 -1时表示输入结束。随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, . 表示.原创 2022-03-27 19:01:35 · 507 阅读 · 0 评论 -
马走日(dfs)
马在中国象棋以日字形规则移动。请编写一段程序,给定n \times mn×m大小的棋盘,以及马的初始位置(x, y)(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。输入格式第一行为整数T(T < 10)T(T<10),表示测试数据组数。每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标n,m,x,yn,m,x,y。(0 \le x \le n-1,0 \le y \le m-1, m < 10, n < ...原创 2022-03-27 11:36:29 · 274 阅读 · 0 评论 -
全排列(简单递归回溯-c++)
输入一个整数n(n <= 9),输出1、2、3、······、n这n个数的全排列(按照字典序输出)。Input一个整数nOutput多行,每行表示一种排列,行内使用空格分隔相邻两数。SampleInputcopy Outputcopy 3 1 2 31 3 22 1 32 3 13 1 23 2 1 #include <iostream>using namespace std;int n.原创 2022-03-27 10:29:31 · 1042 阅读 · 3 评论 -
素数(筛法)c++
求素数3种方法1,暴力求解int zhishu(int n){ for(int i=2;i<=sqrt(n);i++) { if(n%i==0) return 0; } return 1;}for(int j=1;j<=m;j++)zhishu(j);显然时间复杂度太高了。2,打表 O(1)(doge)3,筛法①埃筛基础思想:素数的倍数一定不是素数!实现:从小至大枚举质数x,把x的倍数都标记为非质数。即:用一个bool..原创 2022-03-27 10:10:30 · 2548 阅读 · 1 评论 -
油田问题c++
Oil DepositsTime Limit:1000MS Memory Limit:10000K Total Submissions:27748 Accepted:14096 DescriptionThe GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large r...原创 2022-03-27 10:00:59 · 553 阅读 · 0 评论 -
高精度除法(c++)
高精度除低精度主要是模拟竖式除法洛谷P1480#include <iostream>#include <string>using namespace std;const int N= 1e5+10;int a[N],c[N];int main(){ string s; cin >> s; long long b,x=0,la=s.size();//longlong一定 cin >> b; for(int i=1;i&l.原创 2022-03-21 16:14:35 · 3328 阅读 · 0 评论 -
高精度乘法(c++)
高精度乘法#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N=1e+5;int num1[N],num2[N],sum[N+5];int main(){ string x,y; int k=0,j=0; cin >> x >> y; int la=x.size(),lb=y.size();.原创 2022-03-20 14:22:40 · 1508 阅读 · 0 评论 -
高精度加减法(c++)
高精度加法#include <iostream>#include <string>using namespace std;int num1[100],num2[100],sum[200];int main(){ string a,b; int len1,len2,len; cin >> a >> b; len1=a.size(); len2=b.size(); int j=0,k=0; for(int i=len1-1; i&.原创 2022-03-20 12:47:20 · 920 阅读 · 0 评论 -
再解炸弹人(bfs-dfs)
题出自啊哈算法P95bfs算法#include <iostream>#include <queue>using namespace std;char a[100][100];int book[100][100];int sx,sy,n,m,dx,dy,res=0;int inext[4][2]= {{0,1},{1,0},{0,-1},{-1,0}};struct node{ int x,y;};void getsum(int x,int y){原创 2022-03-15 20:17:59 · 115 阅读 · 0 评论 -
啊哈算法dfs-bfs
题目为解救小哈第一种为dfs#include <iostream>using namespace std;int dx,dy,n,m,imin=99999999;int a[1000][1000],book[1000][1000];void dfs(int x,int y,int step){ int next[4][2]= { {0,1}, {1,0}, {0,-1}, {-1,0} }; int tx,ty; if(x==dx&&原创 2022-03-15 18:12:31 · 626 阅读 · 0 评论 -
string字符串的大小写转换函数
两个函数 tolower()和toupper()需要用到头文件 algorithm 加上命名空间#include <iostream> #include <algorithm>using namespace std;int main(){ string s; getline(cin,s,'.');//仅为做题需要,意思是中间可含有空格到'.'结束读入 for(int i=0;i<s.size();i++) s[i]=tolower(s[i]); for原创 2022-03-06 19:58:40 · 640 阅读 · 0 评论 -
string类型多实例输入
string类型多实例#include <iostream>using namespace std;int main(){ string s; while(getline(cin,s,'\n')) {} } char字符串类型多实例#include <iostream>using namespace std;int main(){ char a[10000]; while(cin.getline(a,101,'\n')) {}原创 2022-03-07 17:19:57 · 172 阅读 · 0 评论 -
c++进制转换
十进制转化为s进制#include <iostream>using namespace std;const int N=100000;int a[N];int main(){ int n,s;//n为需要转换的数,s是转换成s进制 int i=0;//记录长度 cin >> n >> s; while(n!=0) { int m=n%s;//记录余数 a[i++]=m;//存入数组中 n/=s; } for(int j=i原创 2022-03-06 19:47:56 · 2100 阅读 · 0 评论