• Blue


    还是贪心qwq

    (这首曲子Xeuphoria的超好听

    Noi open judge 3528

    给定一个十进制正整数n(0 < n < 1000000000),每个数位上数字均不为0。n的位数为m。 现在从m位中删除k位(0<k < m),求生成的新整数最小为多少? 例如: n = 9128456, k = 2, 则生成的新整数最小为12456

    输入第一行t, 表示有t组数据; 接下来t行,每一行表示一组测试数据,每组测试数据包含两个数字n, k。输出t行,每行一个数字,表示从n中删除k位后得到的最小整数。

    感觉这道题更水了(捂脸)。

    从前往后,如果前面的比后面的大的话,就把它删掉。。。

    但是,还有一点。。那就是前导零(万恶

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    int n;
    char a[105];
    int b;
    int main(){
        scanf("%d",&n);
        for(int i=0;i<n;++i)
        {
            scanf("%s%d",a,&b);
            int l=strlen(a);
            while(b--)
            {
                for(int j=0;j<l;++j)
                {
                    if(a[j]>a[j+1])
                    {
                        for(int k=j;k<l;++k)
                        {
                            a[k]=a[k+1];
                        }
                        break;
                    }
                }
                l--;
            }
            while(a[0]=='0')
                {
                  for(int y=0;y<l;++y)
                  {
                      a[y]=a[y+1];
                  }
                  l--;
                }
            if(a[0]==0)
            {
                printf("0\n");
            }
            else printf("%s\n",a);
        }
        return 0;
    }

    想不出来还有没有什么其他神奇的方法。。
    o(╯□╰)o

  • 相关阅读:
    学习java第8课:idea新建项目
    学习java第9课:IDEA注释
    淘宝专业术语
    学习java第2课:电脑常用快捷键
    学习java第7课:初识idea
    学习java第5课:java程序运行机制
    学习java第6课:Hello,World!
    学习java第4课:java 安装卸载
    学习java第3课;dos命令
    odoo命名规范及常用函数
  • 原文地址:https://www.cnblogs.com/Grigory/p/10072336.html
Copyright © 2020-2023  润新知