一个只有juju才会问的问题(O_O)?

P1132 数字生成游戏

```cout<<now<<endl;```?
by HarryKane @ 2022-09-10 16:06:16


这题也能评蓝?! 一个细节问题,AC代码如下: ```cpp #include<bits/stdc++.h> using namespace std; int m,t,dp[100000]; string s; bool vis[100000]; struct node{ string str; int s; }; queue<node> qt; int main(){ cin>>s; scanf("%d",&m); qt.push({s,0}); int num=atoi(s.c_str()); vis[num]=1; memset(dp,-1,sizeof(dp)); dp[num]=0; while(!qt.empty()){ string now=qt.front().str; int ss=qt.front().s; qt.pop(); int len=now.length(); for(int i=0;i<len-1;i++){ for(int j=i+1;j<len;j++){ swap(now[i],now[j]); int num=atoi(now.c_str()); if(!vis[num]){ vis[num]=1; dp[num]=ss+1; qt.push({now,ss+1}); } swap(now[i],now[j]); } } for(int i=0;i<len;i++){ string p=now; p.erase(i,1); int num=atoi(p.c_str()); if(!vis[num]){ vis[num]=1; dp[num]=ss+1; qt.push({p,ss+1}); } } if(len<s.length()){ for(int i=0;i<len-1;i++){ for(char j=now[i]+1;j<now[i+1];j++){ string p=now; p.insert(i+1,1,j); int num=atoi(p.c_str()); if(!vis[num]){ vis[num]=1; dp[num]=ss+1; qt.push({p,ss+1}); } } } } } while(m--){ scanf("%d",&t); printf("%d\n",dp[t]); } return 0; } ```
by YuRuochen @ 2022-09-10 16:11:20


@[HarryKane](/user/667808) 调试用的
by YuRuochen @ 2022-09-10 16:11:54


@[YuRuochen](/user/658786) 要不,给个关注把(
by HarryKane @ 2022-09-10 16:12:50


@[HarryKane](/user/667808) ?
by YuRuochen @ 2022-09-10 16:17:16


|