丸辣!MLE!
查看原帖
丸辣!MLE!
1027956
Sun13楼主2024/10/27 17:19
#include<bits/stdc++.h>
using namespace std;
const int d[10]={6,2,5,5,4,5,6,3,7,6};
int t; string ans[100010];
bool cmp(string a,string b){
	if(a=="") return 1;
	if(b=="") return 0;
	if(a.size()!=b.size()) return a.size()>b.size();
	return a>b;
}
int main(){
	ans[2]="1";
	ans[3]="7";
	ans[4]="4";
	ans[5]="2";
	ans[6]="6";
	ans[7]="8";
	ans[8]="10";
	ans[9]="18";
	for(int i=10; i<=100000; i++)
		for(int j=0; j<10; j++){
			string news=ans[i-d[j]]+(char)(j+'0');
			if(cmp(ans[i],news)) ans[i]=news;
		}
	scanf("%d",&t);
	while(t--){
		int n;
		scanf("%d",&n);
		if(ans[n]=="") printf("-1\n");
		else cout<<ans[n]<<'\n'; 
	}
	return 0;
}

安详……

2024/10/27 17:19
加载中...