zoukankan      html  css  js  c++  java
  • 洛谷P1106 删数问题

    题目描述

    键盘输入一个高精度的正整数N,去掉其中任意k个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的N和k,寻找一种方案使得剩下的数字组成的新数最小。

    输出应包括所去掉的数字的位置和组成的新的整数。(N不超过250位) 输入数据均不需判错。

    输入输出格式

    输入格式:

    n (高精度的正整数)

    k (需要删除的数字个数)

    输出格式:

    最后剩下的最小数。

    输入输出样例

    输入样例#1:
    175438 
    4
    
    输出样例#1:
    13
    分析:贪心思想,我们每次删数肯定是要找前面的大数给删掉,并且这一位还要比下一位大,这样删掉以后一定会变小,模拟k次过程就好了,不过有几点要注意:1.可能会出现前导0. 2.如果删掉只剩下一个数,并且这个数是0,就不能把它当做前导0.
    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    #include <cmath>
    #include <string>
    
    using namespace std;
    
    string s;
    int k,cnt;
    bool flag = false;
    
    int main()
    {
        cin >> s; 
        int sizee = s.size();
        scanf("%d",&k);
        for (int i = 1; i <= k; i++)
        {
            for (int j = 0; j < sizee - 1; j++)
            {
                if (s[j] > s[j + 1])
                {
                    for (int k = j + 1; k < sizee; k++)
                    s[k - 1] = s[k];
                    break;
                }
            }
            sizee--;
        }
        for (int i = 0; i < sizee; i++)
        if (s[i] != '0' || (s[i] == '0' && flag) || sizee == 1)
        {
        cout << s[i];
        if (s[i] != '0')
        flag = 1;
        }
    
        return 0;
    }
     
  • 相关阅读:
    Kylin 与 Spark SQL相比,有哪些差异和优势?
    apache kylin2.10在原生hadoop集群上安装
    ambari安装 QA
    mysql 5.7 学习
    Public key for ambari-server-2.4.2.0-136.x86_64.rpm is not installed 安装ambari报错总结
    python 练习
    centos 扩容
    Linux中Cache内存占用过高解决办法
    HyperLogLog
    星型模式、雪花模式和事实星座模式
  • 原文地址:https://www.cnblogs.com/zbtrs/p/7517752.html
Copyright © 2011-2022 走看看