码迷,mamicode.com
首页 > 其他好文 > 详细

[CF1009B]Minimum Ternary String(思维)

时间:2019-06-07 00:26:17      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:ini   nim   codeforce   can   位置   操作   public   main   字符   

题目链接

http://codeforces.com/problemset/problem/1009/B

题意

给一个只含0、1、2串,只能做相邻的01交换或者相邻的12交换操作,问经过数次操作(可以是0次)能得到的最小字典序的串是什么。

题解

思维题
关键是把题意理解为:固定0、2的相对位置,往里随意放1,能得到的最小字典序。
显然,目标是把所有1放到0后1前好,故放到第一个2222前,若没有2则放到字符串最前。
关于存储串的形式,存到数组记1的数目即可,然后打印做处理即可。

代码

import java.util.Scanner;

public class Main {
    public static void main(String args[]) {
        Scanner in=new Scanner(System.in);
        String str=in.next();
        int cnt=0;
        for(int i=0;i<str.length();++i) {
            if(str.charAt(i)=='1') {
                ++cnt;
            }
        }
        int i=0;
        for(;i<str.length();++i) {
            if(str.charAt(i)=='0') {
                System.out.print("0");
            }
            else if(str.charAt(i)=='2') {
                while(cnt-->0) {//
                    System.out.print("1");
                }
                System.out.print("2");
            }
        }
        while(cnt-->0) {
            System.out.print("1");
        }
        in.close();
    }
}

[CF1009B]Minimum Ternary String(思维)

标签:ini   nim   codeforce   can   位置   操作   public   main   字符   

原文地址:https://www.cnblogs.com/coding-gaga/p/10987337.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!