MLE
查看原帖
MLE
621587
Yzx20120826楼主2024/10/27 21:52

rt

#include<bits/stdc++.h>
using namespace std;
long long n,x,i,j;
string s[100001]={"0","-1","1","7","4","2","6","8"};
string mi="";
map<int,int> m;
int main(){
	m[0]=7;
	m[1]=1;
	m[2]=2;
	m[3]=3;
	m[4]=4;
	m[5]=5;
	m[6]=6;
	for(i=8;i<=100000;i++){
	    mi="";
		for(j=7;j>=max(2,m[i%7]);j--){
			if(mi==""){
				if(j==6){
					mi=min(s[j]+s[i-j],s[i-j]+"0");
				}else{
					mi=min(s[j]+s[i-j],s[i-j]+s[j]);
				}
			}else{
				if(j==6){
					mi=min(mi,min(s[j]+s[i-j],s[i-j]+"0"));
				}else{
					mi=min(mi,min(s[j]+s[i-j],s[i-j]+s[j]));
				}
			}
		}
		s[i]=mi;
	}
	cin>>n;
	for(i=1;i<=n;i++){
		cin>>x;
		cout<<s[x]<<endl;
	}

	return 0;
}
2024/10/27 21:52
加载中...