随笔分类 - 题解
洛谷
摘要:题目传送门 题意: 给出一个长度为 \(n\) 的操作后的序列,然后给出 \(m\) 次操作过程,每次给出操作类型 \(op\)、操作数 \(x\) 和 \(y\),求出操作前的原始序列。 在操作中,如果 \(x=y\),那么新的 \(x\) 就分别等于原始 \(x\) 的 两倍或平方。即:如果 \
阅读全文
摘要:题目传送门 题意: 给定一个标准价格和 \(n\),然后给出 \(n\) 个不同的价格,找出最便宜的买 \(1000\) 克香肠的价格。 思路: 模拟题,直接根据题意进行模拟即可。 可以进行比较每家店每克的价格,最后在乘 \(1000\) 即可。 code: #include <bits/stdc+
阅读全文
摘要:题目传送门 题意: 给定一个 \(N×M\) 的迷宫和 \(K\),然后给定起点和终点,每次可以像四个方向走 \(1-K\) 步(只能走.的格子),求从起点到终点的最小时间,如不能到达输出 \(-1\)。 思路: 这道题求的是最小时间,可以用 \(BFS\) 加剪枝来做,建一个 \(STL\) 的队
阅读全文
摘要:题目传送门 题意: 给出两个字符串,可以对其中一个字符串进行操作,将最后一个字符插到最前面,问经过不限次的操作后,是否可以将这两个字符串变成一样的。输出 Yes 或 No。 思路: 这道题可以分几种情况来考虑: 两个字符串一开始就是相等的,不需要操作,直接输出 Yes。 两个字符串的长度不相同,无论
阅读全文
摘要:题目传送门 题意: 定义一个十进制数为 \(k\) 阶天才数,并且需要满足: 该整数的位数是 \(k\) 的倍数。 每一个数位都是 \(9\)。 有 \(t\) 次询问,每次询问给出 \(n\) 和 \(k\),求 \(n\) 是否可以拆分成若干个 \(k\) 阶天才数的和。 思路: 题目求的是 \
阅读全文
摘要:题目传送门 题意: 给定 \(N\) 道题及每道题答对所得的分值,答错不得分,如果最终总得分是 \(10\) 的倍数,则分数为 \(0\),问最多可以获得多少分? 思路: 对于多种情况进行分类讨论: 当最后总得分不是 \(10\) 的倍数时,可以直接输出。 当每题得分都是 \(10\) 的倍数时,不
阅读全文
摘要:题目传送门 题意: 给出两个长、宽分别为 \(1\) 和 \(w\) 的矩形,它们到原点的距离分别为 \(a\) 和 \(b\),将这两个矩形水平移动,合成一个长方形,求移动的最小距离。 思路: 根据题目所给出的图得知: 这两个矩阵的水平最短距离为:\(b-(a+W)\)。 化简后得:\(b-a-W
阅读全文
摘要:题目传送门 题意: 给出三个数 \(A,B,C\),其中 \(A,B,C\) 是 \(0\) 或 \(1\),如果三个数相等输出 *,否则输出与另外两个数不同的数。 思路: 直接根据题意进行模拟即可,要注意的是有多组输入,可以用 while 进行输入,然后对每组数据分别进行判断。 code: #in
阅读全文
摘要:题目传送门 题意: 给定 \(T\) 个含有 \(5\) 个骰子状态的有序序列,判断序列是否为公差为 \(1\) 的等差数列,输出 \(Y\) 或 \(N\)。 思路: 由于骰子所有面上的数字只有 \(1∼6\),所以满足条件的等差数列只有两个,分别是: \(1,2,3,4,5\) \(2,3,4,
阅读全文
摘要:题目传送门 题意: 给定一个 \(N×M\) 的矩阵,然后有 \(Q\) 次询问。 每次询问有一个长度为 \(M\) 的序列,求原矩阵中和给定序列匹配的行数。 这里的匹配是指:序列中的每个数和原矩阵中对应位置的数相同或者原矩阵位置上的数是 \(-1\)。 思路: 当序列中的数为 \(-1\) 时,可
阅读全文
摘要:题目传送门 题意: 求在 \(n\) 个人中选出 \(5-7\) 人的方案数,\(7≤n≤777\)。 思路: 在 \(n\) 个人中选出 \(5-7\) 个人的方案数,就是求 \(C^5_n\) \(+\) \(C^6_n\) \(+\) \(C^7_n\)。 组合数的公式为:\(C^m_n\)
阅读全文
摘要:题目传送门 题意: 有一只毛毛虫,从高度为 \(h1\) 的地方爬到高度为 \(h2\) 的地方。它在白天每小时上升 \(a\) 厘米,晚上每小时下掉 \(b\) 厘米。问到第几天的下午 \(2\) 点及以前,毛毛虫能到达 \(h2\)。 思路: 这道题就是简单的分类讨论,有以下几种情况: 永远无法
阅读全文
摘要:题目传送门 题意: 用 Kotlin 编程,给定一个 \(01\) 字符串 \(s\),它只包含 \(0\) 或 \(1\),求最少删掉多少个 \(0\) 使它变成连续 \(1\) 的字符串。 思路: 可以用类似双指针的做法,分别从字符串开头和结尾遍历,找到第一个是 \(1\) 的字符就结束循环并记
阅读全文
摘要:题目传送门 题意: 用 \(m\) 根横棒,\(n\) 根竖棒,交叉摆出 \(n×m\) 个交点,两人轮流摆,每次选一个交点,拿走过这个交点的两个棒。最后没得选的人输。输出胜者。 思路: 每次拿走一根横棒和一根竖棒,数量少的先被取完,所以可以假设横棒数量为 \(x\),竖棒数量为 \(y\)。则取
阅读全文
摘要:题目传送门 题意: 给定 \(n\) 个数,每次任选一个区间,将区间内的每个数 \(+1\),问最少操作几次才能使得原序列变成一个不下降子序列? 思路: 不下降子序列就是序列中后一个数不能小于前一个数。 可以从前往后遍历整个序列,如果前一个数大于后一个数,则操作次数就是两个数的差值。最后把所有操作次
阅读全文
摘要:题目传送门 题意: 学生和教授两人轮流给 \(n×n\) 棋盘上的格子染色,不能将已染色的格子的周围格进行染色。谁没有格子染谁就输。若两人都以最好的方式染色,学生应选择先手还是后手? 思路: 我们可以将棋盘分为黑白两色,两人只能染完两种颜色其中一种。 可以分为两种情况: 当 \(n×n\) 为奇数时
阅读全文
摘要:题目传送门 题意: 给定 \(n\) 个 \(9×9\) 的九宫格数独,对于每个数独,求出每个数独的解的数量,如果只有一个解,输出数独的唯一解。 思路: SP13980 这道题可以用 DFS 深度优先搜索来做,因为深搜可以进行回溯,如果一个数填错可以倒回来重新填,如果填到最后全部正确,解的数量增加。
阅读全文
摘要:题目传送门 题意: 给出 \(24\) 小时制下的时间 \(H:M\),输出 \(24\) 小时制下比该时间早 \(45\) 分钟对应的时刻。 思路: 这是一道纯模拟题目,直接根据题意模拟即可。 注意: 要注意分钟和小时小于0的情况,从前一天或前一小时借位。 code: #include <bits
阅读全文
摘要:题目传送门 思路: 这是一道贪心算法的策略问题。 贪心策略为: 设最大时间为 maxt,时间总和为 sumt,结果为 anst,则: 如果 maxt≥sumt-maxt,则 anst=2×maxt。 如果 maxt≤sumt-maxt,则 anst=sumt。 code: #include <ios
阅读全文
摘要:题目传送门 思路: 这道题可以分情况考虑: \(N = 2\),并且 \(s0 ≤ s1\),可以分解。如果 \(s0 > s1\),不可以分解。 \(N > 2\),肯定可以分解,把 \(s\) 分成两部分,\(s0\) 为一部分,剩下的为一部分。 \(N < 2\),肯定不可以分解。 代码: #
阅读全文

浙公网安备 33010602011771号