zoukankan      html  css  js  c++  java
  • A. Digits Sequence Dividing

    time limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard output

    You are given a sequence ss consisting of nn digits from 11 to 99.

    You have to divide it into at least two segments (segment — is a consecutive sequence of elements) (in other words, you have to place separators between some digits of the sequence) in such a way that each element belongs to exactly one segment and if the resulting division will be represented as an integer numbers sequence then each next element of this sequence will be strictly greater than the previous one.

    More formally: if the resulting division of the sequence is t1,t2,…,tkt1,t2,…,tk, where kk is the number of element in a division, then for each iifrom 11 to k−1k−1 the condition ti<ti+1ti<ti+1 (using numerical comparing, it means that the integer representations of strings are compared) should be satisfied.

    For example, if s=654s=654 then you can divide it into parts [6,54][6,54] and it will be suitable division. But if you will divide it into parts [65,4][65,4] then it will be bad division because 65>465>4. If s=123s=123 then you can divide it into parts [1,23][1,23], [1,2,3][1,2,3] but not into parts [12,3][12,3].

    Your task is to find any suitable division for each of the qq independent queries.Input

    The first line of the input contains one integer qq (1≤q≤3001≤q≤300) — the number of queries.

    The first line of the ii-th query contains one integer number nini (2≤ni≤3002≤ni≤300) — the number of digits in the ii-th query.

    The second line of the ii-th query contains one string sisi of length nini consisting only of digits from 11 to 99.Output

    If the sequence of digits in the ii-th query cannot be divided into at least two parts in a way described in the problem statement, print the single line “NO” for this query.

    Otherwise in the first line of the answer to this query print “YES”, on the second line print kiki — the number of parts in your division of the ii-th query sequence and in the third line print kiki strings ti,1,ti,2,…,ti,kiti,1,ti,2,…,ti,ki — your division. Parts should be printed in order of the initial string digits. It means that if you write the parts one after another without changing their order then you’ll get the string sisi.

    See examples for better understanding.ExampleinputCopy

    4
    6
    654321
    4
    1337
    2
    33
    4
    2122
    

    outputCopy

    YES 3 6 54 321 YES 3 1 3 37 NO YES 2 21 22
    
    
    题解:只要分成2块以上前一部分小于后一部分即可,题目未严格要求分成几个部分
    
    
    
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    int  main()
    {
        int t;
        cin >> t;
        while(t--){
            int n;
            string s;
            cin >> n >> s;
            if(n==2 && s[0]>=s[1] ){
                cout<<"NO"<<endl;
    
            }
            else{
                cout<<"YES"<<endl;
                cout<<"2"<<endl<<s[0]<<" "<< s.substr(1, s.size())<<endl;
            }
        }
        return 0;
    }
  • 相关阅读:
    居中
    redis之列表操作及在django中操作等相关内容-124
    模型类序列化器ModelSerializer的使用等相关内容-84
    序列化类Serializer的基础使用等相关内容-83
    redis的基础使用等相关内容-123
    django框架前后端混合项目之子评论、后台管理页面富文本编辑器、修改头像、修改密码等相关内容-81
    vue框架前后端分离项目之短信验证码、登录、注册接口及前端登陆注册功能等相关内容-122
    web开发模式及drf的介绍等相关内容-82
    django框架前后端混合项目之侧边栏及点赞点踩功能等相关内容-80
    django框架前后端混合项目之首页轮播图、主页、后台管理、头像显示等相关内容-79
  • 原文地址:https://www.cnblogs.com/ygbrsf/p/12583031.html
Copyright © 2011-2022 走看看