摘要:
思路 不难想出一种构造方案: 当 \(k\) 为偶数时,我们可以在 \((x,y)\) 的左右两侧 \((x-\frac{k}{2},y)\) 至 \((x-1,y)\) 的区间和 \((x+1,y)\) 至 \((x+\frac{k}{2},y)\) 的区间放置猴兵。因为猴兵放置的范围为 \(-2 阅读全文
摘要:
思路 直接模拟全过程。当 \(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\),那么现操 阅读全文