Codeforces 401C 题解

博客详细介绍了如何解决Codeforces 401C问题,要求构造01序列,满足特定条件:连续0长度小于2,连续1长度小于3,同时包含n个0和m个1。文章提供了思路解析和解决方案,包括数据插入方法、满足的数学关系以及处理特殊情况的技巧。

题意简述

构造一个01序列,使得这个序列中连续的0长度小于2,连续的1长度小于3,并且有n个0,m个1。(有SPJ,构造一个即可)。没有解输出-1。n,m&lt;=1000000n,m&lt;=1000000n,m<=1000000

数据

输入
1 2
输出
101
输入
4 8
输出
110110110101
输入
4 10
输出
11011011011011
输入
1 5
输出
-1

思路

如果您数学有一定水平,那么首先想到的必定是插入0的方法。先固定下来mmm111,然后往这些111中插入000。拿第2组样例举例子。我们先确定
11111111 \begin{matrix} 1 &amp; 1 &amp; 1 &amp; 1 &amp; 1 &amp; 1 &amp; 1 &amp; 1 \end{matrix} 11111111
为了使连续的111数量小于333个,我们每隔两个111就要插入一个000。变成:
11011011011 \begin{matrix} 1 &amp; 1 &amp; 0 &amp; 1 &amp; 1 &amp; 0 &amp; 1 &amp; 1 &amp; 0 &amp; 1 &amp; 1 \end{matrix}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值