首页 > 爱音的01串构造
头像 牛客93731980号
发表于 2026-02-19 16:37:42
有题意得,1得到0,0得到1,01得到2,因此要想值最大,就必须多01字段,当a=b时,只要输出a次01或10即可,而不同时,需要分类讨论,当a>b的时候,这是就用1来分隔0,把0分割成b+1块,每块长度a/(b+1),若有余数k,就将前k块分别多加入1个0,每块之间放入1。而b>a时, 展开全文
头像 牛客190214153号
发表于 2026-02-16 13:10:11
解题思路: 有a个0,b个1的01串,为了使所有非空连续子串mex之和最大。发现同时有0和1的子串的mex为2最大,那么就要使有0和1的子串尽可能多。当0和1平均的分到字符串中时mex之和最大。 此时分为3种情况:当a=b时,直接"10"a个;当a>b时,可以将0和1分为b+1份,每份中"0" 展开全文
头像 钒溴
发表于 2026-02-14 03:55:15
F题 由题意得,对于mex可分为三种情况,当字符串中只含有1时,mex最小,为0,当字符串中只含有0时,mex为1,当字符串中含有0和1时,mex最大,为2,所以要尽量让字符串中的01错开,整体思路就是将数量多的先排出来,然后将数量少的均匀的插入 #include <bits/st 展开全文
头像 月亮今天园
发表于 2026-02-10 15:48:59
题目描述: 爱音想要构造一个由 a 个 0 和 b 个 1 组成的 01 字符串,且使得这个 01 字符串所有非空连续子串的 mex 之和最大。 在本题中,01 串的 mex 定义为:字符串最小未出现的非负整数。例如, mex("0")=1、mex("1")=0、mex("1100")=2。 题解: 展开全文
头像 RivJay_
发表于 2026-02-14 14:36:24
题目描述: 输入描述: 输出描述: 思路: mex的取值规则为 子串全为 1 → mex = 0 子串全为 0 → mex = 1 子串同时包含 0 和 1 → mex = 2 要最大化总和,等价于最小化全0和全1子串的数量,因为混合子串的贡献最大 因此我们先求出0可将1分成几段和1可将0分成 展开全文
头像 北滨阳
发表于 2026-02-20 22:27:37
题目大意: 构造一个01字符串,使得串的mex值最大。 ‘0’:mex=1; ‘1’:mex=0; ‘01’:mex=2; 解题思路: 要想值最大,就要尽可能多的01串,当a=b时,只要输出a个01或10即可;而当a>b的时候,可以把1当作隔板,就是用1来分隔0,把0分隔为b+1块,每块长度a 展开全文
头像 092325103陈鹏
发表于 2026-02-21 02:30:27
这题理解是有点难的,所以直接用数学公式证明最好。首先,总子串数量为n,01串为m,1串为e,0为p,那么最大值为2m+p,也等于2(n-e-p)+p=2n-2e-p,所以其实是要0串最少,1串最少,所以要平均插入 #include<bits/stdc++.h> using namespa 展开全文
头像 枫林叶233
发表于 2026-02-12 15:59:35
题目 输入 输出 思路 要使这个 01 字符串所有非空连续子串的mex之和最大,那么这个字符串的01就应该均匀分布。 当1和0的数量相等时,答案就是101010....; 当0的数量大于1时,要均匀分布,可以想象成a长度的0字符串被分成b+1份。多余的0,就均匀的分布在b+1份的串中。 1大于 展开全文

等你来战

查看全部