社区讨论
0ptsMLE了,为什么?
P11229[CSP-J 2024] 小木棍参与者 2已保存回复 7
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 7 条
- 当前快照
- 1 份
- 快照标识符
- @m35f81j6
- 此快照首次捕获于
- 2024/11/06 13:10 去年
- 此快照最后确认于
- 2025/11/04 15:15 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e5;
int q,n,dp[200005],use[15]={6,2,5,5,4,5,6,3,7,6};
string ans[200005];
char changeit(int x){
return x+'0';
}
void init(){
dp[0]=0;
ans[0]="";
for(int i=1;i<=N;i++){
dp[i]=-1;
ans[i]="-1";
for(int j=0;j<=9;j++){
if(i-use[j]<0)continue;
if(dp[i-use[j]]==-1)continue;
if(ans[i-use[j]]==""&&j==0)continue;
string s2=ans[i-use[j]]+changeit(j);
if((ans[i].size()>s2.size()||(ans[i].size()==s2.size()&&ans[i]>s2))||ans[i]=="-1"){
ans[i]=s2;
dp[i]=dp[i-use[j]]+use[j];
}
}
}
}
signed main () {
init();
cin>>q;
while(q--){
cin>>n;
cout<<ans[n]<<endl;
}
return 0;
}
回复
共 7 条回复,欢迎继续交流。
正在加载回复...