1
已解决
周琪岳
资深光能
资深光能
/*——*/
我竟然想用暴力方法过6分题
很明显:10pts, TLE万岁/%…___…%/
dfs?想多了
@汪恺恒
algorithm打法——
贴代码:
希望有总排名rk15的大佬回答\ops\
周琪岳在2021-01-16 13:21:03追加了内容
@汪恺恒 同为TLE/qwq/
Orz/大佬
周琪岳在2021-01-16 21:13:29追加了内容
顶(到现在只有一个rk15的大佬/Orz)
/*——*/
周琪岳在2021-01-25 12:40:34追加了内容
I'm extremely disappoint./#___#/
0
已采纳
赵逸凡
初级启示者
初级启示者
rk 2^7 路过。
看了3s,没思路。感觉打表是正解,先把所有排列打下来,存一个数组桶里(离散化..?),然后查找就可以惹
看了两位rk 15的楼上做法,感觉TLE可以卡常优化,wzy的写法还可以的。
2
王子耀
缔造者
缔造者
AC的核心:
typedef long long LL;
char str[13];LL n,m,pos,j,k,len,tmp,fac[13];bool flag[13];
LL getfac(int n){
if(n==0)return 1;
LL ans=1;
for(int i=1;i<=n;++i)ans*=i;
return ans;
}
int main(){
for(int i=0;i<13;++i)fac[i]=getfac(i);
while(cin>>n){
while(n--){
cin>>m;k=0;len=13;m--;
memset(flag,false,sizeof(flag));
for(LL i=1;i<len;++i){
tmp=m/fac[len-i-1];
for(j=0;j<len-1;++j){
if(!flag[j]){
if(tmp==0)break;
tmp--;
}
}
str[k++]='a'+j;
flag[j]=true;
m%=fac[len-i-1];
}
str[len-1]='\0';
cout<<str<<endl;
}
}
王子耀在2021-01-16 19:02:59追加了内容
你好惨,不能复制
1