Mag1c0nch
Mag1c0nch
全部文章
分类
归档
标签
去牛客网
登录
/
注册
Mag1c0nch的博客
全部文章
(共48篇)
题解 | #小欧安排座位#
首先考虑尽可能的满足想换座位的人我们将想换座位的人单独记录下来,然后将其循环打乱,就是给第一个人最后一个人的座位,第二个人第一个人的座位,以此类推发现很像第一天的最后一题,我们维护一个map给每个需要换座位的人自己到自己的映射,然后将其错位swap即可,实现非常的简单 #include <bi...
2024-11-21
3
29
题解 | #小红的好数#
本题关键在于将整形大批量的转为字符串不足5位的用0补齐实现方法很多,个人推荐用 format 来格式化,但是目前牛客不支持c++20用不了string s = format("{:05}", i);所以考虑使用while,将不足5位的字符串前方补0即可判断一个字符串是不是5种字符...
2024-11-21
3
36
题解 | #小欧的数组修改#
考虑使用map维护每个数出现的次数,发现可以顺便维护下map中最大的值 maxn ,答案就是 min(maxn + 1, n) #include <bits/stdc++.h> using namespace std; #define int long long const int N ...
2024-11-21
2
31
题解 | #游游的除2操作#
给大家一种好理解的做法吧简化题意:每个数都可以进行若干次除2的操作,最终需要使所有数相同,输出最少的操作次数我们可以发现,对一个数进行 i 次除2,等效于在将其二进制右移 i 位,而一个 1e9范围内 的数通过除2能得到的数,最多只有29个,我可以轻松的维护出每个数 x 右移 i 位得到的数 y 那...
2024-11-21
7
54
题解 | #游游的字母翻倍#
按题意模拟即可,需要注意的是cpp的 insert 函数有多个重载版本,可以按个人喜好使用本题可以是s.insert(j, 1, s[j - 1]); s.insert(s.begin() + j, s[j - 1]); #include <bits/stdc++.h> using n...
2024-11-20
2
29
题解 | #小红的字符生成#
得到一个 a 需要 1 个 a得到一个 b 需要 2 个 a得到一个 c 需要 4 个 a得到一个 d 需要 8 个 a不难发现对于每个字母就好比二进制上的一位数例如 n=11 时,二进制为1011,很明显用每个二进制位上对应的字母构造出 n 是字符最少的 #include <bits/std...
2024-11-20
3
24
题解 | #小红的排列构造#
简化题意:构造一个n的排列满足 i+a[i] 不是素数众所周知偶数都不是素数,可以考虑从这方面下手假设排列为正序排列,那么每一项都是 2*i ,都是偶数,显然只有 1 不合法因为 2*1 是素数,所以我们可以考虑对后续影响最小的改动方法考虑将 1 和 3 互换,发现合法,手玩一下可以发现 n 为 1...
2024-11-20
2
29
题解 | #小红的字符串构造#
我们先分别讨论两个限制条件,提炼出其中的信息t和s字符集相同,代表s中出现的所有字符在t中都有出现t的每个位置的字符都和s不同,代表t[i] != s[i]观察样例我们发现构造方法很多,但是我们需要写出一种简单的,普适的方法,对于aabbc这种情况,我们可以发现,我们可以将s中的所有a全部变成c,所...
2024-11-19
8
87
首页
上一页
1
2
3
4
5
下一页
末页