zoukankan      html  css  js  c++  java
  • 删数问题(Noip1994)

    1321:【例6.3】删数问题(Noip1994)


    时间限制: 1000 ms         内存限制: 65536 KB
    提交数: 5127     通过数: 1595 

    【题目描述】

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

    输出新的正整数。(n不超过240位)

    输入数据均不需判错。

    【输入】

    n

    s

    【输出】

    最后剩下的最小数。

    【输入样例】

    175438
    4
    

    【输出样例】

    13
    逐个选本位能取到的最小值,贪心,
    #include<iostream>
    #include<cstring>
    using namespace std;
    int main(){
        char a[250],b[250];
        int n,ii=0;
        int s=0;
        cin>>a>>n;
        int l=strlen(a);
    
        for(int i=0;i<l-n;i++){//逐个取第i+1位的最小值,为局部最优即全局最优
                int Min=59;
            for(int j=s;j<=n+i;j++){
                if(a[j]<Min){
                    Min=a[j];
                    s=j+1;
                    b[i]=Min;
                }
            }
    
        }
        while(b[0]=='0'){//去掉首位0
            for(int i=0;i<l-1;i++)
            b[i]=b[i+1];
            l--;
        }
        cout<<b<<endl;
        return 0;
    }
  • 相关阅读:
    AxInterop.VPIClient DLL注册
    多个事务同时操作数据库
    aspx小试
    WPF 或得PNG图片的外形Path的Data
    Spass导出数据
    Excel VBA小试
    合并Excel文件
    asp.net 中文编码问题
    Delphi中的容器类(3)
    Delphi中的容器类(1)
  • 原文地址:https://www.cnblogs.com/yfr2zaz/p/10356366.html
Copyright © 2011-2022 走看看