随笔分类 -  牛客

摘要:D. Grammar Test (grammar) 找规律题。取模是吓人的。发现只有\(01010..\)或者\(101010..\)两种,然后发现长度为\(4\)加上偶数个\(3\)。 点击查看代码 #include <bits/stdc++.h> using i64 = long long; v 阅读全文
posted @ 2025-08-15 17:40 maburb 阅读(160) 评论(0) 推荐(0)
摘要:A. AVL tree 题意:给你一棵二叉树,你每次可以删除一个点,或者对于一个缺少了某个左右儿子的节点补充一个子节点。求变成\(AVL\)树的最少操作。\(AVL\)树是指任意一个节点都有左右儿子高度差小于等于\(1\)。节点高度为左右儿子最大高度加一。空节点高度为\(0\)。 考虑一颗高度为\( 阅读全文
posted @ 2025-08-13 16:48 maburb 阅读(177) 评论(3) 推荐(0)
摘要:A. 小红的不动点 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { int a[4]{}; int ans = 0; for (int i = 0; i < 4; ++ i) { std::cin >> a[ 阅读全文
posted @ 2025-08-10 21:00 maburb 阅读(101) 评论(0) 推荐(0)
摘要:A. Insert One 题意:给你一个数\(x\),你要插一个\(1\)进去,使得这个数尽可能大。 分类讨论。 如果\(x > 0\)则插到第一个\(0\)前面,没有\(0\)则插到最后面。 如果\(x < 0\)则插到第一个大于\(1\)的数前面,没有则插到最后面。 如果\(x = 0\),输 阅读全文
posted @ 2025-08-07 20:51 maburb 阅读(217) 评论(0) 推荐(2)
摘要:A. Loopy Laggon 题意:\(100\)套玩具,每套有\(k\)个玩具。每一个玩具是一个\(n\times n\)的矩阵。一开始都是从左到右从上到下\(1\)到\(n^2\)依次排列。然后进行了很多次操作,每次顺时针旋转一个\(4\times 4\)的子矩阵\(90\)度。然后\(Bob 阅读全文
posted @ 2025-08-06 12:27 maburb 阅读(85) 评论(2) 推荐(0)
摘要:A. 清楚 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { int n; std::cin >> n; if (n % 10) { std::cout << "YES\n"; } else { std::co 阅读全文
posted @ 2025-08-03 21:00 maburb 阅读(35) 评论(0) 推荐(0)
摘要:B. Base Conversion Master 题意:给你\(n, y, m\),和\(n\)个数组,你选择一个进制\(s \in [2, m]\),依次对\(n\)个数组进行转换操作,操作一个数组后把进制改为这个数组的结果。求最终\(s=y\)的区间。 显然大的进制得到的结果一定大于等于小的进 阅读全文
posted @ 2025-08-01 11:09 maburb 阅读(241) 评论(0) 推荐(0)
摘要:E. Mysterious XOR Operation 题意:给你\(n\)个数,两个数的贡献是它们的异或和从低位到高位的第奇数个\(1\)的二进制和。求两两价值和。 按位考虑。 对于第\(i\)位,有多少对让这一位产生价值?首先它们的这一位不同,然后它们的低\(i\)位的\(1\)的个数的奇偶性不 阅读全文
posted @ 2025-07-30 01:04 maburb 阅读(324) 评论(0) 推荐(1)
摘要:A. 小红的好01串 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { int n; std::cin >> n; std::cout << 2 << "\n"; } int main() { std::ios 阅读全文
posted @ 2025-07-27 21:00 maburb 阅读(125) 评论(1) 推荐(3)
摘要:B. Blind Alley 题意:在一个迷宫里,从\((1, 1)\)出发,只能向上向下和向右走,且不能走墙。目的是走到\((1, m)\)。如果走到了第\(j\)列,那么可以看到\([j, \min(j + k, m)]\)这些列的状态。求有没有一个位置,使得其不能到达终点,但从起点到这个点的路 阅读全文
posted @ 2025-07-25 01:21 maburb 阅读(518) 评论(15) 推荐(2)
摘要:A. Ad-hoc Newbie 题意:给定一个\(f\)数组,使得\(f[i] \leq i\)。你要构造一个矩阵\(a\),使得\(mex(a[1][i], a[2][i], ... a[n][i]) = mex(a[i][1], .. a[i][n]) = f[i]\)。 可以构造\(ans[ 阅读全文
posted @ 2025-07-23 11:02 maburb 阅读(212) 评论(0) 推荐(2)
摘要:A. 题解的token计算 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { int n; std::cin >> n; std::cout << std::fixed << std::setprecision 阅读全文
posted @ 2025-07-20 21:01 maburb 阅读(63) 评论(0) 推荐(0)
摘要:A. Another Day of Sun 题意:一个\(01\)数组,有些地方是\(-1\)代表没填。数组的价值为所有最大全\(1\)区间的个数。最大全一区间表示这个区间不能再扩大了。求所有数组的价值和。 \(f[i][x][y]\)表示第\(i\)个填的\(x\)第\(i-1\)个填的\(y\) 阅读全文
posted @ 2025-07-18 09:38 maburb 阅读(384) 评论(0) 推荐(2)
摘要:E. ndless Ladders 题意:所有\(x^2 - y^2\)构成的正整数的集合里,\(|a^2 - b^2|\)是第几位。 打表发现规律,没出现的数中,除了前面\(1, 2, 4, 6\)外其它都是每次加\(4\)。 点击查看代码 #include <bits/stdc++.h> usi 阅读全文
posted @ 2025-07-15 21:12 maburb 阅读(678) 评论(0) 推荐(1)
摘要:A. 小红的双排列 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { int n; std::cin >> n; for (int i = 1; i <= n; ++ i) { std::cout << i < 阅读全文
posted @ 2025-07-13 21:48 maburb 阅读(103) 评论(0) 推荐(0)
摘要:A. 写轮眼 题意:一个数组,把每个数字的\(0\)变成\(8\)。求新数组的和减去原数组的和。 直接模拟每个数的变化就行。 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { int n; std::cin > 阅读全文
posted @ 2025-07-11 21:38 maburb 阅读(88) 评论(0) 推荐(1)
摘要:A. 小红的签到题 点击查看代码 void solve() { int n; std::cin >> n; std::string ans = std::string(1, 'a') + "_" + std::string(n - 2, 'a'); std::cout << ans << "\n"; 阅读全文
posted @ 2025-05-11 21:12 maburb 阅读(78) 评论(0) 推荐(0)
摘要:A. 小s的签到题 点击查看代码 void solve() { int n; std::cin >> n; std::string s; for (int i = 0; i < n; ++ i) { char c; std::cin >> c; s += c; } char ans = 0; int 阅读全文
posted @ 2025-05-09 21:59 maburb 阅读(54) 评论(0) 推荐(0)
摘要:A. 真爱粉Tk(一) 点击查看代码 void solve() { i64 n; std::cin >> n; if (n * 10 % 25 == 0) { std::cout << "Yes\n"; } else { std::cout << "No\n"; } } B. 真爱粉Tk(二) 题意 阅读全文
posted @ 2025-04-20 21:28 maburb 阅读(97) 评论(0) 推荐(0)
摘要:A. 吔我大炮! 点击查看代码 void solve() { int a, b, c; std::cin >> a >> b >> c; if (a * b <= c) { std::cout << "YES\n"; } else { std::cout << "NO\n"; } } B. 梦间 题 阅读全文
posted @ 2025-04-06 21:05 maburb 阅读(105) 评论(0) 推荐(0)