zoukankan      html  css  js  c++  java
  • 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;
    }
    	
    
    
    
  • 相关阅读:
    第三章 SpringCloud之Eureka-Client服务提供者
    第二章 SpringCloud之Eureka-Server服务发现组件
    第一章 SpringCloud简介
    Storm之WordCount初探
    Solr之java实现增删查操作
    Solr安装并导入mysql数据
    java之消息队列ActiveMQ实践
    Ant Design使用方法
    Reactjs之实现js跳转路由
    React之js实现跳转路由
  • 原文地址:https://www.cnblogs.com/For-Miku/p/15361794.html
Copyright © 2011-2022 走看看