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

    题目描述

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

    输入格式

    nn (高精度的正整数)

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

    输出格式

    最后剩下的最小数。

    输入输出样例

    输入 #1
    175438 
    4
    
    输出 #1
    13
    #include<bits/stdc++.h>
    using namespace std;
    int a[251],b[251],i,j,q,t=1,k,n,l,m=0,x=0,y=1,u=0;
    string num;
    int main(){
        cin>>num>>l;
        n=num.length();
        int o=l;
        k=n-l;
        for(i=1;i<=n;++i)
    	{
    		a[i]=num[i-1]-'0';
    		b[i]=9;
    	}
    	while(a[y]==0)
    	{
    		y++;
    	}
    	for(i=y;i<=n;i++)
    	{
    		if(a[i]!=0)
    		m++;
    		if(a[i]==0)
    		{
    			
    			if(m<=l)
    			{
    			l-=m;
    			u+=m;
    			m=0;
    			t=i;
    				
    			}
    			else break;
    		}
    	}
    		while(a[t]==0)
    	{
    		t++;
    	}
    	int kk=n-t+1-o+u;
    	if(kk<=0)
    	cout<<0;
        else{
        	for(int j=1;j<=kk;j++)
    	{
    	for(i=t;i<=n;i++)
    	{
    		if(a[i]==0&&n-i+1>=kk-j+1)
    		{
    			b[j]=0;
    			t=i+1;
    			break;
    		}
    		if(a[i]<b[j]&&n-i+1>=kk-j+1)
    		{
    			b[j]=a[i];
    			t=i+1;
    		}
    	}}
    	for(i=1;i<=kk;i++)
    	{
    		cout<<b[i];
    	}
    
    	}
        	
    }
    

      

  • 相关阅读:
    什么是内卷?
    iphone与PC端如何传BUG截图
    java应用服务占用cpu过高,如何优化
    性能测试常见问题FAQ
    性能测试工程师能力进阶三部曲
    jmeter分布式压测试部署
    了解token及分类
    常见端口号及其服务
    2714
    python
  • 原文地址:https://www.cnblogs.com/lau1997/p/12589710.html
Copyright © 2011-2022 走看看