随笔分类 -  题解

摘要:\(Sol\) 这道题我们可以用$BFS$解决! 我们先通过一个$BFS$预处理出$Harry$走到每一个格子所需的最短时间。 然后,我们从奖杯开始向八个方向展开,找$Harry$走到这些能够直接看到奖杯的最短时间。 注意:遇到墙就不能继续扩展了,视线是不能穿墙的! \(Code\) #includ 阅读全文
posted @ 2020-08-12 10:15 Bushuai_Tang 阅读(233) 评论(1) 推荐(0)
摘要:Sol 这道题我的做法比较暴力。 题目要求我们找到s个,因此我们可以枚举,直到有$s$个符合条件。 然后我们需要来考虑如何判断是否可行。 我们仍然可以很暴力地来做! 我们枚举N进制,然后判断该数字在$N$进制下是否回文。 其实就是一个模拟? Code 我先来帮大家理一理代码思路吧 首先我们要写一个进 阅读全文
posted @ 2020-08-10 21:16 Bushuai_Tang 阅读(267) 评论(1) 推荐(0)
摘要:这道题目很简单,我们可以用暴力枚举的方式来解决。 首先,我们要按照纵坐标的值从大到小排个序,可以使用Operator,也可以写一个Compare函数。 然后,我们记录前面所有横坐标的最大值LasX,往后扫,扫到比LasX还大的,就输出答案。 注意处理一下每个答案之间的逗号! 代码如下: #inclu 阅读全文
posted @ 2020-08-08 21:34 Bushuai_Tang 阅读(199) 评论(0) 推荐(1)
摘要:言归正传,闲言少叙,现在进入题目吧! 题目大意: 现在有一张地图,你要从坐标(1,1)处(左下角)走到坐标(n,m)处(右上角),中间有一些地方不能走,而且只允许向上或向右走。求一共有多少种走法? 乍一看题目,嗯,不怎么难,显然是一道动态规划(大佬们都称之为DP)题。那么,我们首先要考虑的,就是dp 阅读全文
posted @ 2020-08-08 15:32 Bushuai_Tang 阅读(380) 评论(0) 推荐(0)
摘要:现在步入正题,关键是: 打表不会爆! 问:打表要解释吗? 答:%%%。 还是有必要说几句的…… 1.虽然是输出题,但要注意格式,小心格式❌。 2.π是一个无限不循环小数,你枚举不完。 3.此方法非正解。 4.这题我觉得不该挂“普及-”。 #include<bits/stdc++.h> using n 阅读全文
posted @ 2020-08-08 15:31 Bushuai_Tang 阅读(256) 评论(0) 推荐(0)
摘要:看到只有两篇题解,果断水一篇…… 很明显,这道题分为两个部分,我们将两个问题分别解决。 一.求矩形 这个部分相对简单,先考虑行数,有N行,列数也有N列。 所以请看伪代码: FOR I=1...N { FOR J=1...N { 打印! } } View Code 打印时要处理个位数,如果是个位数,那 阅读全文
posted @ 2020-08-08 15:30 Bushuai_Tang 阅读(365) 评论(0) 推荐(0)
摘要:明显的搜索题 本题我提供两种方法:打表和搜索。 第一种方法:打表 俗话说的好: 暴力出奇迹,骗分过样例。 数学先打表,DP看运气。 全文见我主页 搜索也可以打表! 打表,没什么好说的。 但是数据有1000,怎么打表呢? 这你就不用管了 上代码(具体细节见第二种方法): #include<bits/s 阅读全文
posted @ 2020-08-08 15:28 Bushuai_Tang 阅读(154) 评论(0) 推荐(0)
摘要:很适合搜索入门 我竟然交了三次才过 此题用搜索 请原谅,我习惯把数组名叫DP 1.用一个数组DP[i][j]记录点(i,j)是否可行,这样可以避免很多的重复运算。初始化时将所有无风区设为true,其余设为false。 2.别看代码长,其实四个方向都很类似。 3.从每个点进去搜一遍。 4.搜索题小心出 阅读全文
posted @ 2020-08-08 15:27 Bushuai_Tang 阅读(127) 评论(0) 推荐(0)
摘要:此题STL S T L万岁! 此题可以用map,不过看到有人已经写过了,只好改用set,不过map我也会说。 一、set set,即集合,特点是自动去重。所以,在这道题中,也挺好用的。不会用的请去这里学。 这样一来,就不用我特别详细的说了吧。 #include<bits/stdc++.h> usin 阅读全文
posted @ 2020-08-08 15:25 Bushuai_Tang 阅读(142) 评论(0) 推荐(0)
摘要:看了一下,应该没人像我这样储存答案的。 这道题,是明显的搜索题。我比较喜欢用DFS。 这道题与其他题不同之处在于:这道题是Special Judge,走的路径有无数种可能,只要输出一种就够了! 所以,我们要将找出的路径存下来,这时,我们就不得不用上C++ STL库中的STACK(栈)了。 一.介绍一 阅读全文
posted @ 2020-08-08 15:24 Bushuai_Tang 阅读(297) 评论(0) 推荐(0)
摘要:这是一道纯粹的坑题,我们可以用Floyd解决。 我们不妨先理一理这道题的坑点 1.与众不同,这道题目的城市名称是字符串,所以你要先将城市标号。 2.翻译有差错,输出时,每组数据中间要隔一个换行。 3.这是一张无向图,而不是有向图。 4.当n=r=0时,结束程序。 先将字符串编号 利用map,本质上是 阅读全文
posted @ 2020-08-08 15:17 Bushuai_Tang 阅读(116) 评论(0) 推荐(0)
摘要:可不是个水题嘛! 目录 引入 思路 优化 吐槽 代码 Over 引入 暴力出奇迹,骗分过样例。 数学先打表,DP看运气。 穷举TLE,递推UKE。 模拟MLE,贪心还CE。 想要骗到分,就要有方法。 图论背模板,数论背公式。 动规背方程,高精背代码。 如果都没背,干脆输样例。 思路 如引入所述,此题 阅读全文
posted @ 2020-08-08 15:16 Bushuai_Tang 阅读(150) 评论(0) 推荐(0)
摘要:这道题目,我们可以用BFS和最短路径解决。 先来理一理思路吧! 首先,建一个边表,这样就可以存下这张图,建议使用vector。 然后,使用BFS算出最短路径。 最后用快排选出其中较短的距离,算出答案。 谔谔,这不就OK了么? 代码: #include<bits/stdc++.h> #define M 阅读全文
posted @ 2020-08-08 15:15 Bushuai_Tang 阅读(101) 评论(0) 推荐(0)
摘要:淼 这道题,其实就是判断两数是否互质。可是,由于输出格式繁杂,我竟然三次才过。让我们来看一下输出格式: 1.每两组数据中间要有一个空行。 2.数字要用场宽为10去输出。 3.数字和字符串中间要有4个空格。 接下来,上代码: #include<bits/stdc++.h> using namespac 阅读全文
posted @ 2020-08-08 15:13 Bushuai_Tang 阅读(40) 评论(0) 推荐(0)
摘要:一道UVA,我发现UVA在洛谷不太火爆,于是来水一篇 这道题目,我们可以用简单的字符串模拟来做,实在是“太水了”,QAQ。关键就是要把题目读懂! 按照题目意思,就是一道“位值问题”,每一位上的值都有不同的比重。每一位上的比重,就是数值*(2^位置-1)。 那么,考虑公式,简单易懂的小段代码。 int 阅读全文
posted @ 2020-08-08 15:12 Bushuai_Tang 阅读(63) 评论(0) 推荐(0)
摘要:有趣的水题 只有这么几篇题解,那就发一篇吧 这道题我讲两种方法:动规和打表! 先讲讲有趣的打表吧! 一、打表 打表有什么好说的吗? 有,记得开long long! 还是直接上代码吧! #include<bits/stdc++.h> using namespace std; int n; long l 阅读全文
posted @ 2020-08-08 15:11 Bushuai_Tang 阅读(208) 评论(0) 推荐(0)
摘要:那么,闲言少叙,现在切入正题吧(我想我的方法不太复杂)! 这道题要用到一个ABOUT字符串的函数: SUBSTR 这是什么?我们来举个例子: 假设s是一个字符串,s="YOUAREABIGPIG.",我想提取它从下表为0到下表为2的这一段,令他为t。 那么怎样做呢?这就要用到substr了。 表示方 阅读全文
posted @ 2020-08-08 15:10 Bushuai_Tang 阅读(228) 评论(0) 推荐(0)
摘要:为了本题解,蒟蒻特地将代码风格改了改,让大家看得清晰一些。 看了一下其他的题解,说明都不是很详细,于是我来为萌新们说明一下。 我先讲讲我的思路:这道题我们需要用两个 BFS,我们分别来看一看。 第一个 BFS 第一个 BFS作为初始化,作用是将火焰蔓延到某个点(i,j)所需要的时间统计出来,记作 F 阅读全文
posted @ 2020-08-08 15:08 Bushuai_Tang 阅读(201) 评论(0) 推荐(0)
摘要:蒟蒻又来发题解了... 人生自古谁无死,留篇题解帮萌新! 一、思路 这道题目我们可以用BFS解决。 因为必须要先走数字小的,再走数字大的,所以我们做多遍BFS,每一遍BFS从当前数字走到比他大一的数字,将答案加上这条路径。在输入时记录每个数字的坐标。 二、萌新请注意 如果没学过BFS,可以去这里学习 阅读全文
posted @ 2020-08-08 15:06 Bushuai_Tang 阅读(125) 评论(0) 推荐(0)
摘要:蒟蒻又来发题解了... 这道题目,我们可以用暴力枚举解决。 首先,我们要枚举1*k矩阵的起点。 其次,我们需要判断两种情况:横着,竖着。 有一种特殊情况,即k=1时,横着竖着都一样,这只能算一种情况。 没看懂的不妨看看代码中的注释。 #include<bits/stdc++.h> using nam 阅读全文
posted @ 2020-08-08 15:05 Bushuai_Tang 阅读(232) 评论(0) 推荐(0)