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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

三阶魔方模拟

發布時間:2024/5/8 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三阶魔方模拟 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原題:zjnu 1196

題意

給出六個面的初始狀態,每次操作為順時針旋轉一個面,求最后的狀態

解析

用M[i][j]表示第i面第j個格子的狀態,f[i][j]表示第i個面第j方向的面是哪個面(1上,2右,3下,4左)

旋轉一個面i時,首先是把i面上8個格子交換一下,然后就是相鄰4個面接壤i面的那一行順時針交換一下就可以了

代碼

#include<stdio.h> #include<string.h> #include<iostream> #include<vector> using namespace std;int M[8][11],f[8][6];void init(){//初始化一個面的上下左右是哪個面f[1][1]=5;f[1][2]=2;f[1][3]=3;f[1][4]=4;f[2][1]=5;f[2][2]=6;f[2][3]=3;f[2][4]=1;f[3][1]=2;f[3][2]=6;f[3][3]=4;f[3][4]=1;f[4][1]=3;f[4][2]=6;f[4][3]=5;f[4][4]=1;f[5][1]=4;f[5][2]=6;f[5][3]=2;f[5][4]=1;f[6][1]=4;f[6][2]=3;f[6][3]=2;f[6][4]=5; }int id(char c){if(c=='W')return 1;if(c=='O')return 2;if(c=='R')return 3;if(c=='B')return 4;if(c=='G')return 5;if(c=='Y')return 6;return 0; }char charid(int a){for(char c='A';c!='Z';c++){if(id(c)==a)return c;} }void outM(){for(int i=1;i<=3;i++){for(int j=1;j<=6;j++){for(int k=2;k>=0;k--){printf("%c ",charid(M[j][i*3-k]));}}printf("\n");} } vector<int>V; void invector(int a,int r){//用vector來交換4個面的某一行,注意壓入的順序按照順時針運動的前后int ar;for(ar=1;ar<=4;ar++){if(f[a][ar]==r)break;}if(ar==1)V.push_back(M[a][1]),V.push_back(M[a][2]),V.push_back(M[a][3]);else if(ar==2)V.push_back(M[a][3]),V.push_back(M[a][6]),V.push_back(M[a][9]);else if(ar==3)V.push_back(M[a][9]),V.push_back(M[a][8]),V.push_back(M[a][7]);else V.push_back(M[a][7]),V.push_back(M[a][4]),V.push_back(M[a][1]); }void outvector(int a,int r){int ar;for(ar=1;ar<=4;ar++){if(f[a][ar]==r)break;}if(ar==1)M[a][1]=V[0],M[a][2]=V[1],M[a][3]=V[2];else if(ar==2)M[a][3]=V[0],M[a][6]=V[1],M[a][9]=V[2];else if(ar==3)M[a][9]=V[0],M[a][8]=V[1],M[a][7]=V[2];else M[a][7]=V[0],M[a][4]=V[1],M[a][1]=V[2];V.erase(V.begin());V.erase(V.begin());V.erase(V.begin()); }void change(int p){//把p面旋轉int d[11];for(int i=1;i<=9;i++)d[i]=M[p][i];M[p][1]=d[7];M[p][2]=d[4];M[p][3]=d[1];M[p][4]=d[8];M[p][6]=d[2];M[p][7]=d[9];M[p][8]=d[6];M[p][9]=d[3];for(int i=1;i<=4;i++)invector(f[p][i],p);for(int i=2;i<=5&&i!=1;i++){if(i>4)i-=4;outvector(f[p][i],p);if(i==1)break;} }int main(){init();char mi[3];for(int i=1;i<=3;i++){for(int j=1;j<=6;j++){for(int k=2;k>=0;k--)scanf("%s",mi),M[j][i*3-k]=id(mi[0]);}}char mid[1009];scanf("%s",mid);for(int i=0;i<strlen(mid);i++){int k=id(mid[i]);//為了方便先把字母轉化成intchange(k);}outM(); }

總結

以上是生活随笔為你收集整理的三阶魔方模拟的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲视屏 | xxxxav| 国产成人高清视频 | 涩里番在线观看 | 日本打屁股网站 | 一卡二卡三卡在线观看 | 日本999视频 | 欧美在线视频免费播放 | 国产精品毛片久久久久久久av | 玉丸(双性调教) | 日本一二三区视频 | 日韩电影一区二区三区四区 | 日韩精品国产AV | 特级丰满少妇一级aaaa爱毛片 | 天堂成人国产精品一区 | 国产成人在线一区 | 神马久久久久久久久久久 | 夜夜爽夜夜操 | 欧美激情三区 | 污视频在线免费观看 | 极品新婚夜少妇真紧 | 成人在线观看免费高清 | 欧美亚洲国产另类 | 精品人妻一区二区三区蜜桃视频 | 色婷婷综合久久久久中文 | 亚洲AV无码阿娇国产精品 | 日韩欧美国产高清91 | 一区二区日韩av | 国产精品成人电影在线观看 | 国产二区一区 | 无码人妻精品一区二区三区99v | 国产淫语 | 在线高清观看免费观看 | 北条麻妃一区二区三区在线观看 | 国产超碰人人爽人人做人人爱 | 三级免费观看 | 尼姑福利影院 | 国产二区自拍 | 欧美系列在线观看 | av电影一区二区三区 | 国产大尺度视频 | 网站av在线 | 神马国产 | 国产午夜手机精彩视频 | 超碰日本 | 91在线最新 | 国产亚洲欧美在线视频 | 日本免费三片在线播放 | 日本热久久 | 四虎av网站 | 91在线观看欧美日韩 | 久久99一区二区 | 日韩国产欧美一区 | 日韩在线观看不卡 | 成人免费视频a | 欧美日韩精品区 | 国产精品秘入口18禁麻豆免会员 | 一区二区日本 | www.国产在线视频 | 国产第一页屁屁影院 | 操欧美美女 | 播播激情网 | 美女爆乳18禁www久久久久久 | 色婷婷中文字幕 | 国产精品久久久久影院色老大 | 国产tv在线观看 | 中日韩精品一区二区三区 | 欧美日韩在线播放 | 一区二区不卡视频在线观看 | 久久99伊人 | 国产精品免费精品一区 | 日韩精品人妻中文字幕 | 日韩亚洲在线观看 | 中国丰满人妻videoshd | 欧美黄色特级片 | 日日做夜夜爽毛片麻豆 | 欧美日韩xxx | 久久久999久久久 | 91性高潮久久久久久久久 | 日韩干 | 7777在线视频 | 亚洲性猛交 | 91精品久久久久久粉嫩 | 少妇高潮喷水在线观看 | 中文字幕一区二区三区波野结 | 青青草国产在线视频 | 国产精品久久久久久久天堂 | 日本精品视频一区二区 | 一区二区三区伦理 | 特黄特色大片免费 | 蜜桃做爰免费网站 | 国内一级视频 | 亚洲国产婷婷 | 九九视频网| 激情小视频 | 欧美做受xxxxxⅹ性视频 | 青青草午夜 | 精品一区二区三区四 | 成人无码www在线看免费 |