扯在前面

本题的英文翻译很有意思,很符合CF大多题的故事风格,但是luogu的翻译更过于直白易懂

如果让我看英文故事做题我怕我都不知道该怎么下手


正文

题意

构造一个01序列,包含n个0,m个1要求不存在连续2个0,或3个1


什么意思呢,简单说就是,理想状态下我们能把所有0和1消耗完且消耗的最多的情况就是这样

假设有十个1
那么最多有
010101010101010101010
十一个0 最少有
11011011011011
四个0

因此我们可以得出两种无解的情况:

  • 0很多(1很少) 此时n>m+1 或m<n-1;
  • 0很少(1很多) 此时n<(m+2)/2 或m>2n+2;

那我们就判断出来,输出-1;


之后再想想怎么构造01序列:

根据测试,我们可以发现,同样的m和n可能会构造出不同的01序列(像本题的样例一,若输出011也是对的,因为评测机只统计0和1的个数而不是具体排列方式)

那我们就找规律,做法如下:

  1. 我们可以选择构造01和011序列来把总序列拼出来;
  2. 当m=2n时,我们就可以愉快的输出n个011,同理,当m=n时,我们也可以愉快的输出n个01;
  3. 如果情况并不是正好怎么办,因为无解的情况已经判断完,所以我们手中的情况保证有解,所以如果多了1就在总序列前面输出,如果少了1就从把后面的011换成01就好了

之后输出,代码如下

#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<algorithm> using namespace std; int n,m,tot1,tot2,cnt; int main(){
scanf("%d%d",&n,&m);
if(m>2*n+2){
cout<<-1;
return 0;
}
if(m<n-1){
cout<<-1;
return 0;
}
if(m==n*2+1){cout<<1;m--;}
if(m==n*2+2){cout<<11;m-=2;}
while(n){
cout<<0;
if(m!=0){
if(m<n*2){cout<<1;m--;}
else {cout<<11;m-=2;}
}
n--;
}
return 0;
}
谢谢观看

CF401C的更多相关文章

随机推荐

  1. JavaDailyReports10_07

    动手动脑① 1 package test_1; 2 3 public class Test { 4 5 public static void main(String[] args) { 6 // TO ...

  2. Elastisearch在kibana下批量处理(mget和bulk)

    一.批量查询 有点:能够大大减少网络的请求次数,减少网络开销 1.自定义设置index.type以及document id,进行查询 GET /_mget { "docs":[ { ...

  3. 《深入理解Java虚拟机》 Java对象的生命周期

    Java虚拟机运行时数据区 方法区:存储 类信息.常量.静态变量.即使编译器编译后的代码等数据,也有别名叫做非堆.  方法区其中有包含有 运行时常量池,用于存放编译期生成的各种字面量和符号引用.其中, ...

  4. 自定义 简单 底部tab

    项目地址:https://gitee.com/jielov/music-netease-api.git 先创建三个页面 分别为 home.vue , classify.vue, my.vue . 以下 ...

  5. 用python+sklearn(机器学习)实现天气预报数据 数据

    用python+sklearn机器学习实现天气预报 数据 项目地址 系列教程 勘误表 0.前言 1.爬虫 a.确认要被爬取的网页网址 b.爬虫部分 c.网页内容匹配取出部分 d.写入csv文件格式化 ...

  6. swack的wiki站上线

    swack的个人wiki网址:www.swack.cn [服务器破旧,速度较慢,见谅!]

  7. MongoDB按照嵌套数组中的map的某个key无法正常排序的问题

    前阵子同事有一个需求: 在一个数组嵌套map的结构中,首先按照map中的某个key进行筛选,再按照map中的某个key进行排序,但是奇怪的是数据总是乱序的. 再检查了代码和数据之后并没有发现什么错误, ...

  8. JavaScript高级程序设计(第4版)知识点总结

    介绍 JavaScript高级程序设计 第四版,在第三版的基础上添加了ES6相关的内容.如let.const关键字,Fetch API.工作者线程.模块.Promise 等.适合具有一定编程经验的 W ...

  9. 【SpringMVC】SpringMVC 响应数据

    SpringMVC 响应数据 文章源码 返回值分类 返回值是字符串 Controller 方法返回字符串可以指定逻辑视图的名称,通过视图解析器解析为物理视图的地址. @Controller @Requ ...

  10. Head First 设计模式 —— 13. 代理 (Proxy) 模式

    思考题 如何设计一个支持远程方法调用的系统?你要怎样才能让开发人员不用写太多代码?让远程调用看起来像本地调用一样,毫无瑕疵? P435 已经接触过 RPC 了,所以就很容易知道具体流程:客户端调用目标 ...