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 }
  • 相关阅读:
    深拷贝浅拷贝
    计算属性和监听,computed,watch
    字面量的引用与使用
    MYSQL 触发器
    JavaScript寻找对象方式
    JavaScript事件传播
    HTML 绑定事件
    JavaScript 中的 String()方法
    JavScript re模块
    JavScript Math函数的使用方法
  • 原文地址:https://www.cnblogs.com/SeekHit/p/6296446.html
Copyright © 2011-2022 走看看