随笔分类 -  codeforces

上一页 1 2 3 4 5 6 ··· 9 下一页
摘要:A. Mix Mex Max 题意:一个数组,有些地方没填。你需要给这些位置填上数使得数组里任意连续的三个数的\(mex = max - min\)。 当\(mex = 0\)时,\(max = min\);当\(mex \ne 0\)时,\(min = 0, max - min = max\)。而 阅读全文
posted @ 2025-08-08 16:17 maburb 阅读(164) 评论(0) 推荐(0)
摘要:A. Submission is All You Need 题意:给你\(n\)个数,每次选一些数出来,获得它们的和或者\(mex\),然后把它们删掉。求最大价值。 显然除了单独一个\(0\)拿出来选\(mex\),其它直接一次拿出来选和最优。 点击查看代码 #include <bits/stdc+ 阅读全文
posted @ 2025-08-01 02:15 maburb 阅读(554) 评论(6) 推荐(7)
摘要:A. Recycling Center 题意:给你一个数组\(a\),和一个数\(c\),每次选一个数,如果这个数小于等于\(c\)没有代价,否则有\(1\)的代价,没选一个数其它数乘二,求最小代价。 \(n\)很小,考虑倒着来,把所有数都乘上\(2^{n-1}\),初始代价为\(n\),如果有小于 阅读全文
posted @ 2025-07-28 00:36 maburb 阅读(821) 评论(2) 推荐(2)
摘要:A. Difficult Contest 题意:出现排列一个字符串,使得没有\(FFT, NTT\)两个字符串。 把所有\(T\)移到最前面一定符合条件。 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { st 阅读全文
posted @ 2025-07-23 00:53 maburb 阅读(239) 评论(0) 推荐(0)
摘要:A. Greedy Grid 题意:一个\(n\times m\)的矩阵,每个位置有价值,从\((1, 1)\)出发,每次贪婪的往下面和右边种最大的格子走,一直到\((n, m)\)。求有没有一个矩阵使得这个方法不是走的最大价值路径。 模拟一下,如果\(n = 1\)或\(m=1\),只有一条路走, 阅读全文
posted @ 2025-07-20 15:49 maburb 阅读(314) 评论(7) 推荐(0)
摘要:A. Only One Digit 题意:求和\(x\)有至少一个相同数字且最小的数。 取\(x\)数位中最小的数。 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { int x; std::cin >> x; 阅读全文
posted @ 2025-07-18 00:58 maburb 阅读(1087) 评论(1) 推荐(2)
摘要:A. Deranged Deletions 题意:给你一个数组\(a\),你可以删除一些元素。最后要求排序后的这个数组和这个数组没有一个位置是相同的。 留下两个数满足第一个数大于第二个数就行。可以暴力枚举。 点击查看代码 #include <bits/stdc++.h> using i64 = lo 阅读全文
posted @ 2025-07-07 01:43 maburb 阅读(313) 评论(0) 推荐(1)
摘要:A. Add or XOR 题意:你要从\(a\)变成\(b\),每次花费\(x\)代价使得\(a\)加一或者花费\(y\)代价使得\(a = a \oplus 1\)。求最小代价。 偶数异或\(1\)才会有加一效果,且\(y<x\)时才会用异或。数据小可以直接模拟,也可以算出来中间有多少偶数,直接 阅读全文
posted @ 2025-07-06 00:35 maburb 阅读(771) 评论(2) 推荐(4)
摘要:A. Blackboard Game 题意:有\(0\)到\(n-1\)这些数,两个人轮流拿数,第二个人拿的数和第一个人的相加模\(4\)要等于\(3\)。谁不能拿谁输。求第一个能不能赢。 观察发现四个四个一组,\(0, 3\)一对\(1, 2\)一对。发现只有不是\(4\)的倍数第二个人就有匹配不 阅读全文
posted @ 2025-07-02 01:19 maburb 阅读(325) 评论(0) 推荐(1)
摘要:A. Race 题意:\(Alice\)在\(a\)点,宝物可能出现在\(x\)或\(y\)点,判断有没有一个位置使得不管宝物在哪你都可以比\(Alice\)提前拿到。 \(x \leq a \leq y\)无解,否则只需要视情况放在\(x\)或\(y\)上就比\(Alice\)快。 点击查看代码 阅读全文
posted @ 2025-06-27 16:12 maburb 阅读(173) 评论(0) 推荐(0)
摘要:A. Equal Subsequences 题意:构造一个长度为\(n\)的恰好有\(k\)个\(1\)的\(01\)串,使得\(101, 010\)作为子序列出现的次数相等。 如果把\(0\)和\(1\)分边放在两边,那么不会有任何的\(101, 010\)这样的子序列。 点击查看代码 #incl 阅读全文
posted @ 2025-06-13 00:35 maburb 阅读(372) 评论(1) 推荐(1)
摘要:A. Energy Crystals 题意:三个数,每次操作使得一个数增加任意数。但要保证任意两个数都有一个数大于等于另一个数的一半。求三个数都变成\(x\)的最少操作数。 首先把一个数变成\(1\),那么发现,之后没操作两步就能使得最大值乘二加一。那么需要\(log_2x \times 2\)的操 阅读全文
posted @ 2025-06-04 01:14 maburb 阅读(526) 评论(7) 推荐(0)
摘要:A. Gellyfish and Tricolor Pansy 题意:两个人分别有\(a, b\)滴血。两个人的武器有\(c, d\)血。攻击必须用武器,可以攻击对方和对方武器。两个人轮流攻击,第一个人先。求谁赢。 如果第一个想赢,那么要么一直打对面本身,要么把对面武器打没。 点击查看代码 void 阅读全文
posted @ 2025-06-01 01:15 maburb 阅读(827) 评论(0) 推荐(1)
摘要:A. Square Year 题意:判断一个数是不是平方数。 点击查看代码 void solve() { std::string s; std::cin >> s; int n = 0; for (auto & c : s) { n = n * 10 + c - '0'; } int k = std 阅读全文
posted @ 2025-05-27 01:37 maburb 阅读(1078) 评论(0) 推荐(0)
摘要:A. Fashionable Array 题意:删除最少的数,使得最大值减最小值是偶数。 \(n\)很小,暴力枚举。 点击查看代码 void solve() { int n; std::cin >> n; std::vector<int> a(n); for (int i = 0; i < n; + 阅读全文
posted @ 2025-05-25 00:47 maburb 阅读(715) 评论(2) 推荐(2)
摘要:A. It's Time To Duel 题意:第\(i\)个人和第\(i+1\)个人会比赛,每次比赛有一个人赢。给出一个\(01\)序列,\(s_i = 1\)表示第\(i\)个人至少赢了一次,\(s_i = 0\)表示一次也没赢。你需要判断这个序列是不是合法的。 有两个连续的\(0\)或者全是\ 阅读全文
posted @ 2025-05-20 14:56 maburb 阅读(126) 评论(0) 推荐(0)
摘要:A. The Good Array 题意:一个长度为\(n\)的数组,满足每个\(i\)都有前\(i\)个数和后\(i\)个数有\(\lceil \frac{i}{k} \rceil\)个\(1\)。求这样的数组里\(1\)最少的有几个\(1\)。 从前往后模拟一遍,从后往前模拟一遍,记录\(1\) 阅读全文
posted @ 2025-05-15 16:26 maburb 阅读(25) 评论(0) 推荐(0)
摘要:A. Blackboard List 题意:一开始有两个数,然后每次选择两个数的差的绝对值插入进来,最后有\(n\)个数。求一个可能的一开始的数。 如果全是正数,显然最大数不可能是其它数的差,那么它是一开始的数。 如果有负数,因为是插入绝对值,所以负数不可能是后面插入的,它是一开始的数。 点击查看代 阅读全文
posted @ 2025-05-13 21:08 maburb 阅读(23) 评论(0) 推荐(0)
摘要:A. Dinner Time 题意:判断能不能构造一个长度为\(n\)的数组,使得数组和为\(m\),且每个长度为\(p\)的子数组的和都为\(q\)。 往前缀和去想。那么就是\(sum[i] - sum[i - p] = q\)。发现如果\(n\)是\(p\)的倍数,那么\(sum[n] = su 阅读全文
posted @ 2025-05-12 01:09 maburb 阅读(389) 评论(0) 推荐(0)
摘要:A. Dalton the Teacher 题意:给你一个排列,每次交换两个数,使得\(i \ne p_i\)的最少操作数。 记录\(i = p_i\)的位置个数\(cnt\),答案就是\(\lceil \frac{cnt}{2} \rceil\)。 点击查看代码 void solve() { in 阅读全文
posted @ 2025-05-09 18:20 maburb 阅读(20) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 ··· 9 下一页