• CF118C Fancy Number


    Lisa

    这一道题绝对恶意评分了

    0-9,那么不如全求一遍

    对于每一个数字的话,显然先改差为 1 的,然后2---

    并且把大数改小是优先的

    而且把大数该小从前往后,小数改大从后往前

    这样我们先记录一下每个数字有多少个

    就好办了

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<queue>
    #include<stack>
    #include<map>
    #define lll long long
    using namespace std;
    string s;
    int a[11];
    int n,m; 
    int anss=99999999;
    int Ar;
    int ans[11][11];
    int cos[11];
    string an,em;
    void cal(){
    	for(int i=0;i<=9;++i){
    		if(cos[i]>anss)
    		continue;
    		em=s;
    		for(int j=0;j<i;++j){
    			for(int z=n-1;z>=0;--z){
    				if((s[z]-'0'==j)&&ans[i][j]){
    					em[z]='0'+i;
    					ans[i][j]--;
    				}
    			}
    		}
    		for(int j=i+1;j<=9;++j){
    			for(int z=0;z<n;++z){
    				if((s[z]-'0'==j)&&ans[i][j]){
    					em[z]='0'+i;
    					ans[i][j]--;
    				}
    			}
    		}
    		if(cos[i]<anss){
    		//	cout<<"FD";
    			an=em;
    			anss=cos[i];
    		}else{
    			if(em<an){
    				an=em;
    			}
    		}
    	}
    	cout<<anss<<endl;
    	cout<<an;
    }
    int main(){
    	cin>>n>>m;
    	cin>>s;
    	for(int i=0;i<n;++i){
    		a[s[i]-'0']++;
    	}
    	for(int i=0;i<=9;++i){
    		int res=a[i];
    		if(res>=m){
    			cout<<0<<endl;
    			cout<<s<<endl;
    			return 0;
    		}
    		for(int j=1;j<=9;++j){
    			if(i+j<=9){
    				if(res+a[i+j]>=m){
    					cos[i]+=j*(m-res);
    					ans[i][i+j]+=m-res;
    					break;
    				}else{
    					res+=a[i+j];
    					cos[i]+=(a[i+j]*j);
    					ans[i][i+j]=a[i+j];
    				}
    			}
    			if(i-j>=0){
    				if(res+a[i-j]>=m){
    					cos[i]+=j*(m-res);
    					ans[i][i-j]=m-res;
    					break;
    				}else{
    					res+=a[i-j];
    					cos[i]+=a[i-j]*j;
    					ans[i][i-j]=a[i-j];
    				}
    			}
    		}
    	}
    	cal();
    	return 0;
    }
    	
    
    
    
  • 相关阅读:
    在linux系统上源码安装nginx前的准备
    linux上源码安装ftp
    CentOS-7.2网络配置
    linux安装nginx过程中出现的问题及解决办法
    ubuntu:安装httpd和nginx步骤和常见问题及解决办法
    APP性能(Android手机):帧率FPS
    APP性能(Android手机):APP启动时间
    APP性能(Android手机):流量
    常用网址
    navicat mysql与sqlserver数据互转
  • 原文地址:https://www.cnblogs.com/For-Miku/p/15361794.html
Copyright © 2020-2023  润新知