04 2022 档案
摘要:A. Direction Change 题意 从(1,1)点出发到(n,m),每次可以向上下左右四个方向移动,但是不能与上次移动方向相同 最少要移动多少不,如果不能到达输出 -1 思路 假设n<m 如图,先走到边界用 2*n 步,接下来如果离目标 1 格加1即可,如果离目标 2 格,则如下图 共需要
阅读全文
摘要:A. Red Versus Blue 题意 共有 n 个连续字符 ,其中有 a 个 R ,b 个 B (a+b=n),问怎么排列使 R 的最大连续个数最小,输出一种可能排列 思路 b 个B可以把a个R分成 b+1 份,每份放 a%(b+1) 个,余下的从前往后依次放一个 代码 #include <b
阅读全文
摘要:传送门 题目意思并不难理解,有三根柱子 a , b , c。 a 柱子上有一堆从小到大排列的圆盘,把圆盘从下面开始按大小顺序重新摆放在 c 柱子上。并且规定,任何时候, 小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。问应该如何操作? 初次接触类似的问题,乍看之下肯定会感觉无从下手。
阅读全文
摘要:概念 单调队列,即单调递增或单调递减的队列,其中元素从队尾入队,从队首或队尾出队。 应用 单调队列一般用于求区间内的最值问题。 列题 滑动窗口 /【模板】单调队列 先看代码 #include <bits/stdc++.h> using namespace std; int n, m; int q1[
阅读全文
摘要:A - Division 题目链接 题意 找一个最大的xx,满足p % x ==0 and x % q ! = 0 思路 质因数分解 p % q != 0, x=p p % q = 0 , 那么p一定包含q的所有质因数分解的结果。 举例: p=12 q=6p=2 * 2 * 3 q=2 * 3 要使
阅读全文
摘要:A - Count 题目链接 题意 题目就是中文,中翻中就没有必要了吧 思路 矩阵快速幂的入门模板题,掌握模板写一遍就可以了 代码 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 10
阅读全文
摘要:矩阵快速幂用于求递推公式 矩阵快速幂是一种将递推式转化为矩阵乘法形式,然后与快速幂一样优化时间的算法。 详见:传送门
阅读全文
摘要:A - 滑雪 题目链接 思路 搜索模板题无需多说,注意一下记忆化搜索和剪枝 代码 #include<iostream> #include<algorithm> using namespace std; const int N = 1005; typedef pair<int, int> PII; i
阅读全文
摘要:A. Vasya and Coins 题目链接 题目大意 Vasya 有 a 个 1-burle coin,有 b 个 2-burle coin,问他不能通过不找钱支付的价格的最小值。 思路 如果 a 不为 0,从 1 ~ a + b * 2 中的所有价格都可以经过组合进行支付,因此最小不能支付的价
阅读全文
摘要:推荐文章 模板 #include <bits/stdc++.h> using namespace std; const int mod = 100003; typedef long long ll; int solve1(ll a, ll b) { ll ra = 1; while (b > 0)
阅读全文
摘要:A - 越狱 题目链接 题目分析:如果正面去想越狱的方案可能有点不好想,何必不转换个思路: 用所有状态数减去不会越狱的状态数不就是越狱的状态数吗 所有状态数:m^n,因为每个房间的犯人可以信仰m种宗教,根据乘法原理可得不会越狱的状态数: m *(m-1)^(n-1),对于第一个房间,可以选m种,对于
阅读全文
摘要:题目链接 Weird Sum 题意 计算相同数字单元格之间的距离总和 距离=abs(x1-x2)+abs(y1-y2) 思路 暴力遍历会超时不予考虑 尝试找到答案与整体坐标的关系,最后可以推出一个公式。 两个相同颜色单元格的距离 即 横坐标之差 加 纵坐标之差,那么在颜色相同的单元格中: 任意两个单
阅读全文
摘要:题目链接 剪花布条 思路 KMP算法入门题,能写出算法就基本完成 有以点需要注意,因为花布条要被剪掉,因此重复的部分不可取 如 abababac aba abababac aba 相互匹配减去新的字符串就是 babac ,而不要从第二位开始查找 代码 #include <bits/stdc++.h>
阅读全文
摘要:有些算法,适合从它产生的动机,如何设计与解决问题这样正向地去介绍。但KMP算法真的不适合这样去学。最好的办法是先搞清楚它所用的数据结构是什么,再搞清楚怎么用,最后为什么的问题就会有恍然大悟的感觉。我试着从这个思路再介绍一下。大家只需要记住一点,PMT是什么东西。然后自己临时推这个算法也是能推出来的,
阅读全文