不是说前两个点n不超过50吗?为啥我的码一个点都没过,c不会是鬼故事吧,我比赛时就是这样编的
#include<bits/stdc++.h>
using namespace std;
long long t,n,a[10]={6,2,5,5,4,5,6,3,7,6};
long long dp[100001];
int main()
{
cin>>t;
dp[1]=0;
dp[2]=1;
dp[3]=7;
dp[4]=4;
dp[5]=2;
dp[6]=6;
dp[7]=8;
while(t--)
{
cin>>n;
if(n==1)
{
cout<<-1<<endl;
continue;
}
if(n==6)
{
cout<<0<<endl;
continue;
}
for(int i=8;i<=n;i++)
{
for(int j=0;j<=9;j++)
{
if(dp[i]==0)
{
dp[i]=dp[i-a[j]]*10+j;
}
else
{
if(i-a[j]>1)
{
dp[i]=min(dp[i],dp[i-a[j]]*10+j);
}
}
}
}
cout<<dp[n]<<endl;
}
}