卡常数
卡常数
这题暴力模拟就行了

#include<bits/stdc++.h>
using namespace std;
int t,c,x,anc[41][100005];
int f(int x)
{
 int digit[6],mx,mn;
 digit[1]=x%10;
 digit[2]=x/10%10;
 digit[3]=x/100%10;
 digit[4]=x/1000%10;
 digit[5]=x/10000%10;
 sort(digit+1,digit+6);
 mn=digit[1]*10000+digit[2]*1000+digit[3]*100+digit[4]*10+digit[5];
 mx=digit[1]+digit[2]*10+digit[3]*100+digit[4]*1000+digit[5]*10000;
 return mx-mn;
}
void pre()
{
 for(int i=0;i<100000;i++)
   anc[0][i]=f(i);
 for(int i=1;i<41;i++)
   for(int j=0;j<100000;j++)
     anc[i][j]=anc[i-1][anc[i-1][j]];
}
void print(int x)
{
 if(x/10000==0)
  printf("0");
 if(x/1000==0)
  printf("0");
 if(x/100==0)
  printf("0");
 if(x/10==0)
  printf("0");
 printf("%d\n",x);
}
int main()
{
 pre();
 scanf("%d%d",&t,&c);
 while(t--)
 {
  scanf("%d",&x);
  for(int i=0;i<32;i++)
  {
   if((1<<i)&c)
     x=anc[i][x];
  }
  print(x);
 }
 return 0;
}

来源:zr

相关文章:

  • 2022-12-23
  • 2022-01-18
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-04
  • 2021-12-02
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-21
  • 2022-12-23
  • 2022-12-23
  • 2021-12-18
  • 2022-12-23
相关资源
相似解决方案