![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
codeforces每日两题
海风许愿
我始终相信,越努力,越幸运
展开
-
codeforces每日两道思维题(第 五 天)
GET w - 询问是否可以取当前多集的某个子集之和,并得到等于 w 的值。解题思路:贪心策略,每次从最后往前开始找,只要能减就减掉,总共29个数字。在这个问题中,最初会给你一个空的多集。在这个问题中,最初会给你一个空的多集。ADD x - 在多集合中添加一个等于 2^x 的元素;rating :未知。原创 2023-12-19 20:25:51 · 370 阅读 · 0 评论 -
codeforces每日两道思维题(第 四 天)
ak=n LCM(a1,a2,…,ak)≤n^2 这里 LCM 是 a1,a2,…,ak 的最小公倍数。思路:选出三个数,提起的数用1补,我们可以确定,每个n都能分为这样的数,至于原理,我现在还没证明出。找到 k 个正整数 a1,a2,…我们可以证明,在给定的约束条件下,答案总是存在的。原创 2023-12-09 11:33:21 · 76 阅读 · 0 评论 -
codeforces每日两道思维题(第 三 天)
你的任务是编写一个程序,找出比赛结束时可能形成的朋友对的最小和最大数量。输入: 输入只有一行,包含两个整数 n 和 m,用一个空格隔开(1 ≤ m ≤ n ≤ 10^9) — 参与者的数量和团队的数量。输出: 输出只有一行,包含两个整数 kmin 和 kmax — 可能的朋友对的最小数量和最大数量。剩余的情况,最大朋友对数就是其余团队都是1人,最多人数的那个团队的朋友对数。首先要考虑特殊情况,当m==1时,只有一个团队,那么朋友的对数是固定的。当n==m时,每个团队有且只能有一个人,所以一定是没有朋友的。原创 2023-12-06 11:59:45 · 87 阅读 · 0 评论 -
codeforces每日两道思维题(第 三 天)
重新排列这些数字,使得满足 |a1−a2|≤|a2−a3|≤…≤|an−1−an|,其中 |x| 表示 x 的绝对值。每个测试用例的第一行包含一个整数 n(3≤n≤105)— 数组 a 的长度。输出 对于每个测试用例,输出满足给定条件的数组 a 的重新排列版本。每个测试用例的第二行包含 n 个整数 a1, a2, …,两个数距离的位置越远说明差的绝对值越大,最大的差就是最后一个数字减去第一个数字。注意,数组 a 中的所有数字不一定不同。输入 第一行包含一个整数 t(1≤t≤104)— 测试用例数。原创 2023-12-06 10:57:19 · 58 阅读 · 0 评论 -
codeforces每日两道思维题(第 二 天)
此外,你想要使游戏更具挑战性,由于上坡或平地比下坡更难走,级别的难度将是山的数量 i(1≤i<n),使得 hi≤hi+1,其中 hi 是第 i 座山的高度。你已经选择了 n 座山的高度,并希望安排它们,以便第一座和最后一座山的高度差的绝对值尽量小。比终点矮的山,都要放在终点前,这样保证了终点这座山没有被浪费,其余的放在起点后由小到大输出即可。这道题的意思是,只要后面一座山的高度大于等于前面这座山,那我们就认为游戏总难度+1,首先,找到高度差绝对值最小的两座山放在起点和重点,小山在前,高山在后。原创 2023-12-05 16:07:33 · 52 阅读 · 0 评论 -
codeforces每日两道思维题(第 二 天)
如果为偶数,那么前k-1个数字我们让他是n/k,最后一个数字是n/k+n%k,因为n%k是偶数,所以最后一个数字的奇偶性跟前k-1个数字是相同的,这就是答案。如果继续加一个k,此时就是n%k+2 * k,因为2 * k是偶数,不改变原数字奇偶性,所以等同于没加,所以不需要继续加。所以,根据这个特性,我们只需要判断最后一个数字加上n%k之后会不会发生奇偶性变化,即判断n%k是否为偶数。如果n%k此时是奇数,那么我们可以将前k个数字都-1,判断n%k+k是否是偶数,如果是偶数,那么存在答案。原创 2023-12-05 13:36:44 · 48 阅读 · 0 评论 -
codeforces每日两道思维题(第一天)
an 的数组,使得和 (a1+a2+⋯+an) 能够被 k 整除,且数组 a 中的最大元素是可能的最小值。1)当n < k 时,我们让每个数组都取 k/n ,这样因为会出现下取整,整体答案是不够k的,那么再让一部分数字加上1,答案就是k/n+1。如果不能整数,那么就要扩大到距离最近的能够整除的数字,也就是令n = (n/k+1)*k;2)当n==k时,因为数字个数正好等于总和k,那直接让所有的ai = 1就是答案。若是本身n%k==0 那么直接让ai 都等于 n/k就是答案。那么此时的答案就是n/k。原创 2023-12-04 16:37:59 · 54 阅读 · 0 评论 -
codeforces每日两道思维题(第一天)
例如,如果 A=6,B=4,则整数 24 和 72 是好的,整数 6、660 和 12 是几乎好的,整数 16 和 7 既不是好的也不是几乎好的。这道题的思路其实挺简单,当 b = 1时,因为所有的a的倍数都是好数,所以我们找不到几乎好的数,那么一定是No。这三个数字是一定不相等的,并且因为 a*(b+1) % (a * b) = a % (a * b)!要找到三个不同的正整数 x、y 和 z,其中正好有一个是好的,另外两个是几乎好的,并且满足 x+y=z。如果一个整数可以被 A⋅B 整除,则它是好的;原创 2023-12-04 09:39:15 · 71 阅读 · 0 评论