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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

HDU 5983(模拟魔方 模拟)

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

題意是說給定一個 2*2 魔方的各個面的情況,問是否能轉動不超過一次使得魔方復原。

思路是先在輸入的時候統計一下已完成的面數,要想以最多一次的轉動使得魔方復原,那么已完成的面數只能是 2 面或者 6 面,此處可剪枝。

若已完成 6 面,那么一定可以復原;

若已完成 2 面,則要用一次轉動完成其他六面,開始這里打算用結構體去存,結果在判斷的時候自己混亂了……最終直接定了 24 個變量,a,b,c……w,x,

手動做了個小正方體,太丟人……(但不得不說這種方法挺好的,易于理解,而且不會亂^_^)

代碼如下:

1 #include <bits/stdc++.h> 2 using namespace std; 3 int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x; 4 bool xu[8]; 5 int main() 6 { 7 int times,cnt; 8 bool wu; 9 scanf("%d",&times); 10 while(times--) 11 { 12 cnt = 0; 13 memset(xu,0,sizeof(xu)); 14 scanf("%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j,&k,&l,&m,&n,&o,&p,&q,&r,&s,&t,&u,&v,&w,&x); 15 if(a==b&&b==c&&c==d) 16 { 17 ++cnt; 18 xu[0] = 1; 19 } 20 if(e==f&&f==g&&g==h) 21 { 22 ++cnt; 23 xu[1] = 1; 24 } 25 if(i==j&&j==k&&k==l) 26 { 27 ++cnt; 28 xu[2] = 1; 29 } 30 if(m==n&&n==o&&o==p) 31 { 32 ++cnt; 33 xu[3] = 1; 34 } 35 if(q==r&&r==s&&s==t) 36 { 37 ++cnt; 38 xu[4] = 1; 39 } 40 if(u==v&&v==w&&w==x) 41 { 42 ++cnt; 43 xu[5] = 1; 44 } 45 if(cnt==6) puts("YES"); 46 else if(cnt==2) 47 { 48 wu = 0; 49 if(xu[0]&&xu[2]) 50 { 51 if(m==n&&m==u&&m==w) 52 { 53 if(v==x&&v==e&&v==f) 54 if(g==h&&g==r&&g==t) 55 if(q==s&&q==o&&q==p) 56 wu = 1; 57 } 58 else if(m==n&&m==r&&m==t) 59 { 60 if(q==s&&q==e&&q==f) 61 if(g==h&&g==u&&g==w) 62 if(v==x&&v==o&&v==p) 63 wu = 1; 64 } 65 } 66 else if(xu[1] && xu[3]) 67 { 68 if(a==b&&a==w&&a==x) 69 { 70 if(u==v&&u==i&&u==j) 71 if(k==l&&k==s&&k==t) 72 if(q==r&&q==c&&q==d) 73 wu = 1; 74 } 75 else if(a==b&&a==s&&a==t) 76 { 77 if(q==r&&q==i&&q==j) 78 if(k==l&&k==w&&k==x) 79 if(u==v&&u==c&&u==d) 80 wu = 1; 81 } 82 } 83 else if(xu[4] && xu[5]) 84 { 85 if(a==c&&a==n&&a==p) 86 { 87 if(m==o&&m==j&&m==l) 88 if(i==k&&i==f&&i==h) 89 if(e==g&&e==b&&e==d) 90 wu = 1; 91 } 92 else if(a==c&&a==f&&a==h) 93 { 94 if(e==g&&e==j&&e==l) 95 if(i==k&&i==n&&i==p) 96 if(m==o&&m==b&&m==d) 97 wu = 1; 98 } 99 } 100 if(wu) puts("YES"); 101 else puts("NO"); 102 } 103 else puts("NO"); 104 } 105 return 0; 106 } View Code

?

轉載于:https://www.cnblogs.com/Taskr212/p/9740115.html

總結

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

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