为了能到远方,脚下的每一步都不能少。|

larryyu_blog

园龄:2年5个月粉丝:5关注:17

2023-01-31 16:54阅读: 32评论: 3推荐: 0

P8536 「Wdoi-2」幻胧月睨 题解

Description

给你一个01字符串 ssi=1 时, 1ji1,ai>aj , si=0 时, ai 不满足上述条件,求任一满足条件的 a 数列。

Solution

设字符串 s 中有 x 个0, y 个1,则 si=1,ai=ni+1 ,即升序,既能保证 ai>aj ,也能保证 ai1<ai2 ,再来看
si=0 的情况,明显剩下的 aj=[1,x] ,但是为降序,否则当 s1=0,s2=0 时, 可能a1=1,a2=2,实际上 s1=0,s2=1 造成冲突 。代码很好实现。

Code

int t;
int n;
int a[100100];
string s;
int main(){
    cin>>t;
    while(t--){
        int cnt=0,tot=0;
        cin>>n;
        cin>>s;
        for(int i=1;i<=n;i++){
            if(s[i-1]=='1') tot++;
          //  cout<<a[i];
        }
       	tot=n-tot+1; //不要忘了加一
        cnt=tot-1;
        for(int i=1;i<=n;i++){
            if(s[i-1]=='0'){
                cout<<cnt<<" ";
                cnt--;//递减
            }
            else{
                cout<<tot<<" ";
                tot++;//递增
            }
        }
        cout<<endl;
    }
    return 0;
}

完结撒花!!

本文作者:larryyu_blog

本文链接:https://www.cnblogs.com/larryyu/p/17079789.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   larryyu_blog  阅读(32)  评论(3编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起