zoukankan      html  css  js  c++  java
  • hiho #1144 : 01串(模拟)

    #1144 : 01串

    时间限制:7000ms
    单点时限:1000ms
    内存限制:256MB

    描述

    给定两个整数n和m,求是否存在恰好包含n个0和m个1的01串S,使得S中不存在子串"001"和"11"。

    如果存在符合条件的01串则输出字典序最小的S,否则输出NO。

    输入

    一行两个整数,表示n和m。(0<=n,m<=100000,0<n+m)

    输出

    一行一个字符串,为字典序最小的S或者NO。

    样例输入
    2 3
    样例输出
    10101

    分析:

      不能存在“001”和11,根据概率统计的插空法,其实就是在_1_1_1_的地方填0。

    如果当m=n-1的时候,刚好1比0多1个。。。所以就是若干个“10”,然后接一个1.

    如果n>=m,就是0多,1少,不能出现001,那么就若干个“01”,然后后面接0.

      n<m,必然有一个11连在一起,NO

    AC程序:

     1 #include "iostream"
     2 
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     int n, m;
     8     while (cin >> n >> m)
     9     {
    10         if ((m - n >= 2) || (n == 0 && m == 0))
    11             cout << "NO" << endl;
    12         else if (n == m - 1)
    13         {
    14             for (int i = 0; i<n; i++)
    15                 cout << "10";
    16             cout << "1" << endl;
    17         }
    18         else
    19         {
    20             for (int i = 0; i<m; i++)
    21                 cout << "01";
    22             for (int i = m; i<n; i++)
    23                 cout << "0" ;
    24             cout << endl;
    25         }
    26     }
    27 }
  • 相关阅读:
    poj 3087 直接模拟
    POJ-3126 BFS,埃式筛选及黑科技
    POJ3278-Catch That Cow
    js变量提升
    饿了么
    2分钟就能学会的【Google/百度搜索大法】了解一下?
    span标签间距
    Vue移动端项目如何使用手机预览调试
    Port 3000 is already in use
    koa2第一天 async详解
  • 原文地址:https://www.cnblogs.com/SeekHit/p/6296446.html
Copyright © 2011-2022 走看看