08 2024 档案
摘要:思路 直接模拟全过程。当 \(n > 0\) 的时候就减去每一位上的数字之和即可。 由于时间限制有 \(2\) 秒,所以不用考虑超时。 AC code #include<bits/stdc++.h> #define int long long using namespace std; int k,a
阅读全文
摘要:思路 考虑贪心策略。 当剩下的猫猫数量为偶数的时候,直接取出 \(\large \frac{n}{2}\) 只猫猫即可。 否则当剩下的猫猫数量为奇数的时候,则要尽可能保持第二天猫猫的数量为偶数。则要考虑 \(n-\large \frac{n-1}{2}\) 和 \(n-\large \frac{n+
阅读全文
摘要:题意 有 \(n\) 个人,其中的 \(x\) 个人想吃售价 \(b\) 元的汉堡,剩下的人想吃售价 \(a\) 元的汉堡。问满足所有人的需求下,总共要花费多少元? 思路 由于剩下的都是吃售价 \(b\) 元的汉堡的,所以吃售价 \(b\) 元汉堡的人共有 \(n-x\) 人。可以从此得到总花费为
阅读全文
摘要:题意 已知 \[\sum_{i=1}^{n}\min(x,a_i)\le m \]问 \(x\) 最大为多少。 思路 由于答案具有单调性,所以考虑二分答案。 但是有一点要注意,当 \(\sum_{i=1}^{n}a_i\le m\) 时,应该输出 infinite。 因为此时的 \(x\) 可以为任
阅读全文
摘要:思路 考虑贪心。 从左往右扫,找到一个就标记一个即可。 但是要注意,当遇见这种情况时 000 000 最优的方法是左右各放一个积木,共放入两块。但如果按照刚刚的方法,则有可能会是这样 0X0 XX0 所以在一些地方有多种放法时,应该优先放置开口朝右的积木。 AC Code #include<bits
阅读全文
摘要:题意 有两个走法为中国象棋象的棋子,棋盘上有一些坏格子,问它们是否可以在好格子相遇。 思路 则判断两个棋子是否相遇有两个条件 是否可以在一个格子相遇。 那个格子是否是好格子。 先考虑条件 \(1\) 设第一个棋子的坐标为 \(a_x\) 和 \(a_y\),第二个棋子的坐标为 \(b_x\) 和 \
阅读全文
摘要:思路 设 \(T\) 为总时间。由于第一次太郎一定会花 \(m\) 时间到达门口,所以 \(t\) 要先减去 \(m\)。 之后太郎就有两种选择 在门口等待下一个快递,时间花费为 \(a_i-a_{i-1}\)。 回书房,学习一会,再拿快递,时间花费为 \(2\times m\)。 则最优时间花费为
阅读全文
摘要:题意 给你 \(n\) 个城市,每个城市用 \(0\) 和 \(1\) 表示是否有罪犯。问离 \(a\) 城市为 \(i\) 距离的城市能不能抓捕罪犯。 思路 题目中问的是能不能抓捕,其实就是问你能不能确定确定罪犯位置。设每个城市编号为 \(k_i\),那么当有罪犯时就有以下几种情况 \(k_{a-
阅读全文
摘要:题意 给你一个操作顺序,每个字母代表一个格子的操作。每次操作都会将一个格子及它相邻的格子的值 \(-1\),如果格子的值为 \(0\),则会变成 \(9\)。已知操作完成后的所有格子值都为 \(0\),求最开始每个格子的值为多少。 思路 模拟过程。 倒推出得出答案。如果原操作 \(-1\),那么现操
阅读全文
摘要:思路 朴素做法 当输入 \(a_i\) 后,直接将它及它的子树进行变换。而这样时间会超时。预计得分 \(40\) pts。 正解 统计每次变换的节点编号,第 \(i\) 个节点作为根节点进行子树变换的次数为 \(rec_i\)。最后从这棵树的根节点 \(1\) 开始向下 dfs,则每个节点变换的次数
阅读全文
摘要:这是一道模拟题。 前置知识 数级 思路 当读取到了 thousand 和 million 时,计数器要乘上对应的值并累加到最终答案里,并且把计数器归零(因为该数级已经计算完了)。 当读取到 hundred 时,只要计数器乘上 \(100\)。 否则如果是其他数,则直接累加到计数器即可。 AC cod
阅读全文
摘要:前置知识 位运算 按位与的运算规则: 二进制下,相同位的两个数字都为 \(1\),则为 \(1\);若有一个不为 \(1\),则为 \(0\)。 分析 由按位与的运算规则可以得到:\(A\&A=A\),而题目中的两次提交可以是相同的,所以两次都只需要取 \(n\) 个数中最大的数即可。 AC cod
阅读全文
摘要:题意 给定一个长度为 \(n\) 的01字符串,有以下两种操作: 将一个子串翻转,花费 \(X\) 将一个子串进行取反,花费 \(Y\) 求把原字符串变为全是 \(1\) 的字符串的最小代价。 思路 只有 \(2\) 操作的情况下 贪心策略。考虑到任意范围取反的花费相同,我们可以将相同的部分合并,如
阅读全文
摘要:试题 \(\mathrm{A}\) : 平方序列 暴力枚举 \(x\),通过 \(x^2-2019^2\) 求出它们的公差 \(c\),再计算 \(x^2+c\) 是否为完全平方数即可。 code #include<bits/stdc++.h> #define int long long using
阅读全文
摘要:思路 由于每次输入 \(x\) 和 \(y\) 只改变其上下左右的值,所以每次只要更新其相邻的值即可。 当某个位置相邻的奶牛数达到 \(3\) 时,舒适度加一。 当某个位置相邻的奶牛数达到 \(4\) 时,舒适度减一。 注意:每增加一头奶牛以后,如果该位置相邻正好有三头奶牛,则舒适度也要加一。 AC
阅读全文
摘要:本题题意 给一个字符串,将其分成等长度的字符串,但是分的行数不能超过 \(5\) 行,每行的长度不得超过 \(20\)。如果无法等分的,则用 * 来补足长度。输出在行数最小的前提下,列数最少的一种方案。 思路 由于字符串范围最多也就 \(20\times5\),直接分类讨论即可。 AC code #
阅读全文
摘要:本题题意 有 \(n\) 个议员,编号为 \(1 \sim n\),就坐在 \(a \times b\) 的礼堂里,求如何安排座位能够使得任意两个相邻的座位上的议员奇偶性不相同。 思路 无解情况 当 \(n > a \times b\) 时,必定无法满足,则直接输出 -1。 有解情况 打表找规律。
阅读全文
摘要:本题题意 小 A 和小 B 在一个 \(n \times n\) 的棋盘里下柯基棋,当一个人不能再放下棋子时,他就输了。问谁会有必胜策略。 思路 先不考虑小 C 的捣乱。 分类讨论 当 \(n\) 为奇数时,不难得出:当小 A 第一步放在棋盘的正中心时,以后不管小 B 放在哪里,小 A 只要放在它的
阅读全文
摘要:题意&翻译 输入 \(T\) 组数据,每行数据有 \(n\) 个电话号码,最后再输入一行电话号码 \(t\)。输出前面与 \(t\) 相差不超过一个字符的电话号码。 思路 把前面的 \(n\) 个电话号码逐个与 \(t\) 比较即可。 AC code #include<bits/stdc++.h>
阅读全文
摘要:题面简述: 定义:对于一个字符串 \(A\) 和字符串 \(B\),如果 \(A\) 可以通过删除一个字符,或插入一个字符,或修改一个字符变为 \(B\),我们则称之为 \(A\) 和 \(B\) 是相似的。 给定 \(T\) 组 \(A\) 和 \(B\)。分别判断它们是否相似。 那么:就有以下几
阅读全文
摘要:本题题意 给定一个数 \(n\),求 \(n\) 是否可以写成 \(1+2+3+4+\ldots+k\) 的形式。若可以,输出那个 \(k\),否则输出 \(-1\)。 思路 做法一: 暴力模拟 k。 code: #include<iostream> using namespace std; lon
阅读全文