
洛谷
Samven_7
当你发现自己的才华撑不起野心时,就请安静下来学习吧。
展开
-
【洛谷】P1135 奇怪的电梯(dfs深搜)
【题目】https://www.luogu.com.cn/problem/P1135【思路】从起点开始,只要没越界就向上下搜,全部搜完得到答案 。注意剪枝。【代码】#include <iostream>#include <cstring>#include <algorithm>using namespace std;int N, A, B, ...原创 2019-11-26 18:05:39 · 632 阅读 · 0 评论 -
【洛谷】P1057 传球游戏(动态规划)
【题目】https://www.luogu.org/problem/P1057【思路】动态规划:我们知道每个人可以把球传给左或右的人,这里用p[i][j]二维数组来记录。i表示第几轮,j表示人的序号(从0开始)。主要思路:第i轮的第j个人得到球的方法数,等于第i-1轮他左右两边的人得到球的方法数之和。因为,这两个人在第i轮都可以把球传给第j个人。【代码】#include <ios...原创 2019-11-19 17:58:47 · 404 阅读 · 0 评论 -
【洛谷】P1025 数的划分(搜索、剪枝)
【题目】https://www.luogu.org/problem/P1025标签:搜索、递推、剪枝【思路】这里采用递归的方法,为了确保出现的方案不重复,可以规定方案中后面的数大于或等于前面的数。begin是上一个出现的数,初始化为1(表示第一个数从1开始)。num代表当前还能分的数,初始是输入的需要划分的数n。floors是层数(对于超过层数的搜索直接剪枝),初始是输入的需要划分的...原创 2019-11-01 15:58:22 · 397 阅读 · 0 评论 -
【洛谷】P1192 台阶问题(记忆化、深搜)
【题目】https://www.luogu.org/problem/P1192【思路】如果是普通的深搜,很容易超时,因为很多位置会重复计算。改进方法是采用记忆化搜索的技巧。思路挺简单的,具体的看代码吧。【代码】#include <iostream>#include <algorithm>using namespace std;int n, k, p[100...原创 2019-10-25 17:02:23 · 559 阅读 · 0 评论 -
【洛谷】P1088 火星人(模拟、全排列)
题目:https://www.luogu.org/problem/P1088标签:模拟、排序、全排列、搜索【题解】通过交换来得到下个全排列,交换的前提是左边的数要小于右边的数。先从右往左找到左边小于相邻右边的数的位置k,再从右往左找到大于该数的数(可能会有多个),然后交换这两个数,最后要让k位置后的数排列成升序。【代码】#include <iostream>#incl...原创 2019-09-17 11:23:46 · 368 阅读 · 0 评论 -
【洛谷】P1045 麦森数(高精度、快速幂)
题目:https://www.luogu.org/problem/P1045标签:高精度、快速幂【思路】此题主要分为两个部分,第一个部分是求位数,第二部分是求最后500位数字。求位数,并不用把整个结果全部算出来。我们知道一个高中学过的公式 NlogNX=XN^{log_{N}{X}} = XNlogNX=X。所以对于2P−12^{P}-12P−1可以转换成 10log102P−1...原创 2019-09-21 12:32:34 · 228 阅读 · 0 评论 -
【洛谷】P1403 [AHOI2005]约数研究(数学、枚举、暴力)
题目:https://www.luogu.org/problem/P1403标签:数学、枚举、暴力【思路】数 — 约数1 — 12 — 1,23 — 1,34 — 1,2,45 — 1,56 — 1,2,3,6我们可以发现,在数1~6的全部约数中“1”出现的次数为(6/1)=6次;“2”出现的次数为(6/2)=3次;“3”出现的次数为(6/3)=2次;“4”出现的次数为...原创 2019-09-24 16:18:12 · 185 阅读 · 0 评论 -
【洛谷】P1017 进制转换(数学、进制)
【题目】https://www.luogu.org/problem/P1017标签:数学、进制【思路】求进制数很容易想到用输入数据一直对要转换的进制基数取余数,再倒序输出即可。问题在于:因为是负进制数,在C++中,-15/-2=7,而-15%-2=-1,所以会出现余数为负数的情况。先说结论,对于余数为负数,可以通过 余数-除数(进制数),商+1 来解决。余数绝对值肯定小于除数,都为负数...原创 2019-09-28 10:56:50 · 253 阅读 · 0 评论 -
【洛谷】P1147 连续自然数和(数学、枚举、暴力)
【题目】https://www.luogu.org/problem/P1147【思路】方法很多,前缀和、暴力等,这里介绍数学方法。求连续序列和,我们知道一个公式,连续序列和 = (首项+末项) * 项数 / 2 。设首项为k1,末项为k2,序列和为m。有 (k1+k2)*(k2-k1+1)/2=m,移动后 (k1+k2)*(k2-k1+1)=2*m,所以可以把2*m分解成两个数x,y相乘...原创 2019-10-03 11:08:39 · 554 阅读 · 0 评论 -
【洛谷】P1029 最大公约数和最小公倍数问题(数学、枚举、暴力)
【题目】https://www.luogu.org/problem/P1029标签:数学、枚举、暴力【思路】1)最大公约数和最小公倍数有这样的关系:最小公倍数=两整数的乘积/最大公约数2)另外还要用到求模法:求模法就是对于传入的两个数,用较大的数来对较小的数求模,要是模为零,则较大的数则为最大公约数。若是模不为零,则对于较小的数和模继续上述的过程。主要思路就是从x到y遍历,并判断要...原创 2019-10-07 11:18:57 · 604 阅读 · 0 评论 -
【洛谷】P1498 南蛮图腾(分治、递归)
题目:https://www.luogu.org/problem/P1498标签:分治、递归、字符串【题解】最终图腾是由多个与之相似的更小的图腾元素组成,一直迭代就行。我的思路先手动设置最小的三角形图腾,然后往右边和上边移动一次就形成大一级的图腾。以此类推。不用理会题目输入的数字和图腾的大小有什么具体关系,题目都说了此大小非彼大小,只要知道2是基础三角形平移后的三角形图腾,3是把前面平...原创 2019-09-11 22:19:44 · 1463 阅读 · 0 评论 -
【洛谷】P1908 逆序对(递归,归并排序)
题目:https://www.luogu.org/problem/P1908标签: 递归、归并排序【题解】数据量很大,普通的比较很容易超时。题意是比较找出 aia_iai > aja_jaj且 i < j 的有序对,因此只需比较aia_iai 和后面的数即可,所以可以用归并排序,在合并的时候比较。注意: 记录逆序对的数目ans要用long long 型,虽然数据量n...原创 2019-09-10 15:53:00 · 478 阅读 · 0 评论 -
【洛谷】P1010 幂次方(分治、二进制、递归)
题目:https://www.luogu.org/problem/P1010标签: 分治、二进制、递归【题解】思路主要是用二进制思想加上递归来解决,看起来简单,但是写的时候有点绕,参考了洛谷题解dalao的代码。(捂脸。。)【代码】#include <iostream>#include <cmath>using namespace std;void c...原创 2019-09-09 21:37:59 · 377 阅读 · 0 评论 -
【洛谷】P1309 瑞士轮(归并排序)
题目:https://www.luogu.org/problem/P1309【题解】 最开始采用每轮比赛下来再用快排排序的方式,发现都超时了。分析:由题意可知每轮比赛下来,胜者们的排序一定是正确的,满足由大到小的顺序;而败者们的排序也一定是正确的,满足由大到小的顺序,由此得到两个有序的序列。所谓的快排效率高,是针对随机的数列的,而这里每一轮比赛下来,有一半人的相对顺序已经确定了,...原创 2019-08-24 16:32:59 · 277 阅读 · 0 评论 -
【洛谷】P1080 国王游戏(贪心、高精、排序)
题目: https://www.luogu.org/problem/P1080标签:贪心、高精、排序【题解】参考dalao的推导过程:有中间两个人 i 和 i+1,显然他们俩怎么排对后面没有影响(因为只跟乘积有关)记 p 为国王到 i-1 个人的 左手数的乘积所以若不换的话,显然 max{ p/b[i], p*a[i]/b[i+1] } < max{ p/b[i+1], p...原创 2019-08-27 23:06:14 · 396 阅读 · 0 评论 -
【洛谷】P1219 八皇后(深度优先搜索)
题目:https://www.luogu.org/problem/P1219标签:深度优先搜索【题解】题目条件:使得每行、每列有且只有一个棋子,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。所以这里用 a[150], b[150], c[150], d[150] 四个数组来标记信息,它们分别对应行、列、右上到左下对角线、左上到右下对角线的信息。技巧:对于一条从右上到左下...原创 2019-08-30 16:42:15 · 181 阅读 · 0 评论 -
【洛谷】P1019 单词接龙(搜索)
题目:https://www.luogu.org/problem/P1019标签:搜索【题解】处理的基本思想是搜索,search( )函数中用for循环一直往下搜索,满足条件就连接字符串,并让单词使用次数加一,回溯时让连接的字符串回到连接前,并让单词使用次数减一回到连接前。重点是对重叠部分的处理,这里采用了一个compare( )函数单独处理。外循环是需比较的重叠部分的长度(从1开始)...原创 2019-09-01 19:33:53 · 343 阅读 · 0 评论 -
【洛谷】P1101 单词方阵(字符串、搜索)
题目:https://www.luogu.org/problem/P1101标签:字符串、搜索【题解】主要思路就是当遇到 ‘y’ 后,再从八个方向开始搜索。从某个方向开始搜索时,如果满足条件就递归,否则结束递归。当 “yizhong” 字符串成功搜索到时,用result数组保存路径,此次dfs也就结束了。注意: 用 string 容器存储时,一定要判断下标越界问题。【代码】#inc...原创 2019-09-03 11:49:26 · 270 阅读 · 0 评论 -
【洛谷】P1443 马的遍历(广度优先搜索、队列)
题目:https://www.luogu.org/problem/P1443标签:搜索、广度优先搜索,BFS、队列【题解】一般的,求解的个数用深搜,求最优解用广搜。这题很明显,求马到达某个点最少要走几步,所以用广度优先搜索。思路很简单,马能走八个方向,在搜索时逐一走一遍,满足条件就进队,再记录步数。【代码】#include <iostream>#include <...原创 2019-09-06 17:05:31 · 687 阅读 · 0 评论 -
【洛谷】P1141 01迷宫(深度优先搜索、连通块)
题目:https://www.luogu.org/problem/P1141【题解】标签:深度优先搜索、连通块采用dfs深搜,但是如果对每个要求点都深搜一次应该会超时,优化方法是采用连通块的思想。题目是说从一格开始能移动到多少格,可以有很多岔路,深搜时不用回溯,一直搜就行。这些岔路上所有的点构成连通块,连通块任意一点能移动的格数是相同的(这个很好理解,简单来说就是你能到我这,那么我也能...原创 2019-09-07 10:20:30 · 447 阅读 · 0 评论 -
【洛谷】P1434 [SHOI2002]滑雪(dfs深搜、记忆化搜索)
题目:https://www.luogu.org/problem/P1434标签: 深度优先搜索、记忆化搜索【题解】题目的意思很明显,找到一条降序的路径滑坡。想到使用深搜,但是显然,直接dfs会TLE。那么就需要记忆化来优化。每搜一次记忆一次,再次搜到时直接拿来用就行。【代码】#include <iostream>#include <algorithm>u...原创 2019-09-07 17:20:09 · 297 阅读 · 0 评论 -
【洛谷】P1433 吃奶酪(dfs深搜、剪枝)
题目:https://www.luogu.org/problem/P1433标签: 深度优先搜索、剪枝【题解】直接用深搜会超时,因为题目是求最小距离,所以可以采用最优性剪枝的方法,遇到不是最优解的时候直接结束搜索。【代码】#include <iostream>#include <cmath>using namespace std;int n, f[20]...原创 2019-09-08 22:51:27 · 783 阅读 · 1 评论 -
【洛谷】P1177 【模板】快速排序 题解
题目描述利用快速排序算法将读入的NN个数从小到大排序后输出。快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++C++选手请不要试图使用STL,虽然你可以使用sort一遍过,但是你并没有掌握快速排序算法的精髓。)输入格式第11行为一个正整数NN,第22行包含NN个空格隔开的正整数a_ia**i,为你需要进行排序的数,数据保证了A...原创 2019-08-18 20:41:17 · 3728 阅读 · 0 评论