逆天大脑
查看原帖
逆天大脑
1051462
yuthay楼主2024/11/8 13:35

沉重悼念

代码A了,但是考场上怕错,打了特殊性质。 结果B性质打错了痛失70分和省一。(其它代码是对的,甚至把B的特判删掉都AC了)。初中的竞赛生涯就这样带着遗憾和不甘离场了。

(我当时还输入了15,输出801,我觉得是对的)

最后欣赏一遍我的代码,就对它说再见了。

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int T,n,maxn,b[N];
int t[10]={6,2,5,5,4,5,6,3,7,6};
bool f;
void dfs(int k,int res)
{
	if(f) return ;
	if(k==maxn+1) {
		for(int i=1;i<=maxn;i++) cout<<b[i];
		cout<<endl; f=1;
		return ;
	}
	for(int i=0;i<=9;i++) {
		if(k==1&&i==0) continue;
		if(7*(maxn-k)<res-t[i]) continue;
		if(k<=maxn-1&&res>=t[i] || k==maxn&&res==t[i]) 
		{
			b[k]=i;
			dfs(k+1,res-t[i]);
		}
	}
	return ;
}
int main()
{
	freopen("sticks.in","r",stdin);
	freopen("sticks.out","w",stdout);
	cin>>T;
	while(T--)
	{
		cin>>n; f=0;
		maxn=ceil(n/7.0);
		if(n%7==0) {//A
			for(int i=1;i<=maxn;i++) cout<<8;
			cout<<endl;
			continue;
		}
		if(n%7==1&&n!=1&&n!=8) {//B  
			for(int i=1;i<maxn-1;i++) cout<<8;
			cout<<"01\n";
			continue;
		}
		dfs(1,n);
		if(!f) cout<<-1<<endl;
	} 
	return 0;
}
2024/11/8 13:35
加载中...