随笔分类 -  xcpc真题

摘要:A. Project Management 题意:有\(n\)个人,第\(i\)个人有\(a_i, b_i\)两个属性,代表他可以接受最多\(b_i\)个\(a\)值大于\(a_i\)的人。求最多选多少人。 把相同\(a\)值的人存到一起,按\(b\)值从小到大排序。 那么可以从大到小枚举\(a\) 阅读全文
posted @ 2025-08-22 22:27 maburb 阅读(119) 评论(0) 推荐(0)
摘要:A. AUS 题意:三个字符串,你要给每个字符定义一个值,使得\(s_1 = s_2\)且\(s_1 \ne s_3\)。 显然\(s_1, s_2\)对应位置字符的值是一样的,一个字符可能和多个字符值一样,那么可以把它们归为一类,用并查集维护,最后把\(s_1, s_3\)的字符变为对应的值,看两 阅读全文
posted @ 2025-08-21 14:40 maburb 阅读(309) 评论(0) 推荐(0)
摘要:A. Rikka with Minimum Spanning Trees 题目很长,其实就是按照他给出的代码生成边,然后求最小生成树,注意判断不连通的情况。 点击查看代码 #include <bits/stdc++.h> using i64 = long long; using ui64 = uns 阅读全文
posted @ 2025-07-14 19:54 maburb 阅读(53) 评论(0) 推荐(0)
摘要:A. Minimum Product 题意:给你一个无向图,每条边有\(a_i\)和\(b_i\)两个属性。求一条\(1\)到\(n\)的最短路,路径的权值为\((\sum a_u) \times (\sum b_u)\)。 正解应该是一个背包。我写了\(dijkstra\)加一个剪枝跑过去了。 记 阅读全文
posted @ 2025-07-11 17:59 maburb 阅读(574) 评论(0) 推荐(0)
摘要:A. Live Love 题意:\(n\)个数有\(m\)个数是好的,随意排列,求最长连续好子数组的长度和最短长度。 最长显然是\(m\)。最短可以把\(n-m\)个坏的拿出来,把数组分成了\(n-m+1\)个部分,然后这\(m\)个数放在均匀的插在每个部分,答案就是\(m\)除\(n-m+1\)向 阅读全文
posted @ 2025-07-09 18:00 maburb 阅读(21) 评论(0) 推荐(0)
摘要:C. Flippy Sequence 题意:给你两个长度相同的\(01\)串\(s, t\),你必须操作两次使得他们相等。每次操作选择一个区间,使得\(s\)在这个区间的位置都取反。求有多少种操作方案。 记\(s_i = t_i\)的地方为\(0\),否则为\(1\),发现最前的一段\(1\)后最后 阅读全文
posted @ 2025-06-04 22:46 maburb 阅读(20) 评论(0) 推荐(0)
摘要:A. Xu Xiake in Henan Province if-else 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { int a, b, c, d; std::cin >> a >> b >> c >> 阅读全文
posted @ 2025-05-28 17:32 maburb 阅读(46) 评论(0) 推荐(0)
摘要:A. Magic Mirror 签到 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { std::string s; std::cin >> s; for (auto & c : s) { if (c >= ' 阅读全文
posted @ 2025-05-26 17:37 maburb 阅读(34) 评论(0) 推荐(0)
摘要:C. Insertion Sort 题意:一个长度为\(n\)的排列是好的,那么它的最长上升子序列长度至少为\(n-1\)。求有多少长度为\(n\)的排列在给前\(k\)个元素排序后是好的。 考虑\(k=1\)的情况,实际和\(k=0\)一样,因为不会改变任何东西。那么这种情况我们可以任选\(n-1 阅读全文
posted @ 2025-05-23 23:05 maburb 阅读(43) 评论(0) 推荐(0)
摘要:B. Call of Accepted 题意:计算算式,有\(d, +, -, *\)四种运算符和括号。\(d\)的级别最高,且是右结合,也就是\(xdydz = xd(ydz)\)。\(xdy\)表示每次在\([1, y]\)里取一个值,取\(x\)次,求最小值和最大值。 用递归计算算式,注意细节 阅读全文
posted @ 2025-05-22 19:58 maburb 阅读(26) 评论(0) 推荐(0)
摘要:A. Olympian Math Problem 题意:求\((\sum_{i=1}^{n-1} i \times i!) \% n\)。 \(i \times i! = (i + 1)! - i!\),\(\sum_{i=1}^{n-1} i \times i! = (2! - 1!) + (3! 阅读全文
posted @ 2025-05-21 22:24 maburb 阅读(24) 评论(0) 推荐(0)
摘要:A. Adrien and Austin 题意:\(n\)个石头,每次可以连续拿\(1\)到\(k\)个,拿过的不可以再拿。不可以拿的输。求赢家。 大量试样例后,觉得除了\(k=1\)的情况需要讨论奇偶,其它情况都是第一个人赢。注意\(n=0\)是第二个人赢。 点击查看代码 #include <bi 阅读全文
posted @ 2025-05-21 00:46 maburb 阅读(48) 评论(0) 推荐(0)
摘要:A. Array Merge 题意:给你两个数组,你要把它们合并为一个数组,保持原数组的元素顺序不变。合并后为\(c\),求\(\sum_{i=1}^{n+m} c_i \times i\)最小。 贪心想哪个大就放哪个,但这样如果某个数组前面很小,后面非常大,这个做法就是错的。 然后想到按平均值来看 阅读全文
posted @ 2025-05-14 18:30 maburb 阅读(24) 评论(0) 推荐(0)
摘要:A. Plague Inc 多源\(bfs\)模板。 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { int n, m; while (std::cin >> n >> m) { int k; std::ci 阅读全文
posted @ 2025-05-12 19:17 maburb 阅读(21) 评论(0) 推荐(0)
摘要:A - The Fool 题意:求\(\sum_{i=1}^{n} \lfloor \frac{n}{i} \rfloor\)的奇偶性。 裸的整除分块。 点击查看代码 void solve() { int t; std::cin >> t; for (int tcase = 1; tcase <= 阅读全文
posted @ 2025-05-10 13:20 maburb 阅读(23) 评论(0) 推荐(0)
摘要:准备按照https://www.cnblogs.com/WIDA/p/18122995这个网页整理的往年\(xcpc\)真题刷题和\(vp\)。 B. Goldbach 题意:\(n\)中产品,生产第\(i\)种产品可以获得\(a_i\)的收益,\(m\)种矿物,采集第\(i\)种矿物需要支出\(b 阅读全文
posted @ 2025-05-08 19:12 maburb 阅读(42) 评论(0) 推荐(0)