日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

八数码(康拓展开标记)及类似题

發(fā)布時間:2025/3/21 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 八数码(康拓展开标记)及类似题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章:https://www.cnblogs.com/Mychael/p/8282895.html

康拓展開,知道數(shù)列求排名

//3 2 5 4 1 59 #include<bits/stdc++.h> using namespace std; int fac[20],sign[20],a[20],label[20],n; void init(){fac[0]=1;for(int i=1;i<=10;i++)fac[i]=fac[i-1]*i; } int kangtuo(int* a){for(int i=0;i<n;i++)sign[i]=1;int paiming=0;for(int i=0;i<n;i++){int cnt=0;for(int j=0;j<a[i];j++)if(sign[j])cnt++;sign[a[i]]=0;paiming+=cnt*fac[n-i-1];}return paiming; } int main(){init();cin>>n;for(int i=0;i<n;i++)cin>>a[i],a[i]--;///第一位的排名是0,所以要自減cout<<kangtuo(a)<<endl;return 0; }

康拓逆展開,知排名求數(shù)列

//10 5 1 3 4 5 2 #include<bits/stdc++.h> using namespace std; int ans[20],fac[20],sign[20],a[20],label[20],n; void init(){fac[0]=1;for(int i=1;i<=10;i++)fac[i]=fac[i-1]*i; } void nikangtuo(int paiming,int m){paiming--;int cnt;for(int i=0;i<m;i++)label[i]=1;for(int i=0;i<m;i++){cnt=paiming/fac[m-1-i];paiming=paiming%fac[m-1-i];for(int j=0;j<m;j++){if(!label[j])continue;if(!cnt){label[j]=0;ans[i]=j;break;}cnt--;}}for(int i=0;i<m;i++)cout<<ans[i]+1<<" "; } int main() {init();int paiming,m;cin>>paiming>>m;nikangtuo(paiming,m); }

  

http://poj.org/problem?id=1077

#include<iostream> #include<cstring> #include<algorithm> #include<cstdio> using namespace std; const int M=4e5+5; struct node{int a[9]; }que[M],endd; int factorial[9],start[9]; char str[2],dir[]="lrdu",op[M]; int net[M],vis[M]; int nextx[4]={0,0,-1,1}; int nexty[4]={1,-1,0,0}; void init(){factorial[0]=1;for(int i=1;i<9;i++)factorial[i]=factorial[i-1]*i; } int kang(int *a){int v=0;for(int i=0;i<9;i++){int countt=0;for(int j=i+1;j<9;j++)if(a[i]>a[j])countt++;v+=countt*factorial[8-i];}return v; } void bfs(int sign){int head=0,tail=0;que[tail++]=endd;vis[sign]=1;while(head<tail){node P=que[head++];int now_sign=kang(P.a);int x,y,z;for(int i=0;i<9;i++){if(P.a[i]==0){x=i/3,y=i%3,z=i;break;}}node Q=P;for(int i=0;i<4;i++){int tx=x+nextx[i];int ty=y+nexty[i];if(tx<0||ty<0||tx>=3||ty>=3)continue;int tz=tx*3+ty;Q.a[z]=P.a[tz];Q.a[tz]=0;int Q_sign=kang(Q.a);if(!vis[Q_sign]){vis[Q_sign]=1;op[Q_sign]=dir[i];net[Q_sign]=now_sign;que[tail++]=Q;}Q=P;}} } int main(){init();for(int i=0;i<9;i++)if(i==8)endd.a[i]=0;elseendd.a[i]=i+1;int sign=kang(endd.a);bfs(sign);while(~scanf("%s",str)){if(str[0]=='x')start[0]=0;elsestart[0]=str[0]^48;for(int i=1;i<9;i++){scanf("%s",str);if(str[0]=='x')start[i]=0;elsestart[i]=str[0]^48;}int start_sign=kang(start);if(vis[start_sign]){while(sign!=start_sign){putchar(op[start_sign]);start_sign=net[start_sign]; }putchar('\n');}elseputs("unsolvable");}return 0; } View Code

?

https://www.luogu.org/problemnew/show/P2730

#include<cstdio> #include<cstring> #include<queue> #include<algorithm> #include<iostream> using namespace std; int mi(int x,int y){return x<y?x:y; } inline int read(){int sum=0,x=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')x=0;ch=getchar();}while(ch>='0'&&ch<='9'){sum=(sum<<1)+(sum<<3)+(ch^48),ch=getchar();}return x?sum:-sum; } inline void write(int x){if(x<0)putchar('-'),x=-x;if(x>9)write(x/10);putchar(x%10+'0'); } const int M=4e5+5; struct node{int a[8]; }que[M],endd; int fac[8],start[8]; char dir[]="ABC",op[M],anss[M]; int nextt[M],vis[M]; void init(){fac[0]=1;for(int i=1;i<8;i++)fac[i]=fac[i-1]*i; } int kang(int *a){int ans=0;for(int i=0;i<8;i++){int countt=0;for(int j=i+1;j<8;j++)if(a[i]>a[j])countt++;ans+=countt*fac[7-i];}return ans; } void bfs(int sign){int head=0,tail=0;que[tail++]=endd;vis[sign]=1;while(head<tail){node P=que[head++];int now_sign=kang(P.a);node Q=P;for(int i=0;i<3;i++){//Aif(i==0){for(int j=0;j<=3;j++){int t=Q.a[j];Q.a[j]=Q.a[7-j];Q.a[7-j]=t;}}//Belse if(i==1){Q.a[0]=P.a[3];Q.a[1]=P.a[0];Q.a[2]=P.a[1];Q.a[3]=P.a[2];Q.a[4]=P.a[5];Q.a[5]=P.a[6];Q.a[6]=P.a[7];Q.a[7]=P.a[4];}//Celse{Q.a[0]=P.a[0];Q.a[1]=P.a[6];Q.a[2]=P.a[1];Q.a[3]=P.a[3];Q.a[4]=P.a[4];Q.a[5]=P.a[2];Q.a[6]=P.a[5];Q.a[7]=P.a[7];}int Q_sign=kang(Q.a);if(!vis[Q_sign]){vis[Q_sign]=1;op[Q_sign]=dir[i];nextt[Q_sign]=now_sign;que[tail++]=Q;}Q=P;}} } int main(){init();for(int i=0;i<8;i++)endd.a[i]=i+1;int sign=kang(endd.a);bfs(sign);while(~scanf("%d",&start[0])){for(int i=1;i<8;i++)start[i]=read();int start_sign=kang(start);// string ss;int i=0;while(sign!=start_sign){//putchar(op[start_sign]);//ss+=op[start_sign];anss[i++]=op[start_sign];start_sign=nextt[start_sign];}write(i);putchar('\n');i--;for(;i>=0;i--)putchar(anss[i]);putchar('\n');}return 0; } View Code

?

轉(zhuǎn)載于:https://www.cnblogs.com/starve/p/10970413.html

總結(jié)

以上是生活随笔為你收集整理的八数码(康拓展开标记)及类似题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产毛片a级 | 欧美在线va | 黄色国产在线视频 | 人人艹视频 | 男女无遮挡免费视频 | 国产一极毛片 | 少妇情理伦片丰满午夜在线观看 | 1024av在线| 日韩精品资源 | www.色黄| 国产精品免费大片 | 亚洲免费国产 | 亚洲最新av| 欧美www.| 九七伦理电影 | 日本欧美色 | 伊人国产精品 | 日韩免费观看一区二区三区 | 电影《两个尼姑》免费播放 | 日本视频h| 中文字幕2018| 久久96视频 | 国产性久久 | 爱爱视频网站免费 | a亚洲精品 | 最好看的mv中文字幕国语电影 | 日本啪啪片| 插插插干干干 | 国产亚洲精品久久久久四川人 | 欧美一级免费观看 | 久久一区二区视频 | 欧美天堂在线视频 | 海角国产乱辈乱精品视频 | 一级黄色大片免费看 | √天堂8资源中文在线 | 国产三区视频 | 村上里沙番号 | av高清在线免费观看 | 用力抵着尿进去了h | 天天干天天天 | 九九热视频在线 | 黄色片子视频 | 午夜久久久久久久久久久 | 日本男人天堂网 | 小小姑娘电影大全免费播放 | 久久久久久国产精品日本 | 加勒比一区在线 | 涩里番在线观看 | av亚州| 天天舔天天干天天操 | 九色精品视频 | 色老大视频| 超碰在线观看免费 | 黑人极品ⅴideos精品欧美棵 | 国产成人精品在线播放 | 黄色免费网站在线 | 国产又黄又大又粗的视频 | 欧美一级爱爱视频 | 欧美色淫| 国产成人免费av | 久久久久亚洲av成人网人人网站 | 亚洲国产视频一区二区 | 沟厕沟厕近拍高清视频 | 日日干夜夜操 | 97精品人妻一区二区三区香蕉 | 色美av| 大尺度做爰无遮挡露器官 | 日韩av视屏| 久久久久久国产精品三区 | 精品久久久久成人码免费动漫 | 亚洲h视频在线观看 | 国产乱性 | 蜜桃av免费在线观看 | 日韩欧美一级视频 | 天堂在线1 | 五月天国产视频 | 欧美视频在线不卡 | 蜜桃在线一区二区 | 中文字幕国产一区 | 国产一区影院 | 久久91精品国产91久久小草 | ass日本粉嫩pics珍品 | 五月天欧美 | 黑人操少妇| 午夜免费影院 | 中文字幕一区三区 | 欧美成人福利视频 | 欧美一级片在线视频 | 99综合| 日韩三级小视频 | 一级小毛片 | 色综合中文字幕 | 亚洲小说春色综合另类 | 国产在线观看网站 | 亚洲一二三在线 | 啪一啪在线 | 日本黄色动态图 | 中文乱码人妻一区二区三区视频 | 日韩视频 中文字幕 |