hdu 5292 Pocket Cube
阿新 • • 發佈:2019-02-11
給一個二階魔方的狀態,可能安裝錯了,問是否可以還原。
作為一個Cuber,十分鐘碼出來怒拿此題FB。因為二階魔方,可以做到交換任意兩個塊,所以塊的位置是不用考慮的,只用考慮色向。因為黃白相對,考察黃白麵的朝向,正確記為0,順時針記為1,否則記為2,統統加起來能被3整除就是合法的。不要問我為什麼,因為我是Cuber。
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <string> #include <set> #include <algorithm> using namespace std; #define ll long long int main(){ int t; cin>>t; int cas=0; while(t--){ cas++; int ans=0; for(int i=1;i<=24;i++){ char color[2]; scanf("%s",color); if(color[0]=='w'||color[0]=='y'){ switch(i){ case 5: case 7: case 9: case 12: case 14: case 16: case 21: case 24: ans++; break; case 6: case 8: case 10: case 11: case 13: case 15: case 22: case 23: ans+=2; break; } } } printf("Case #%d: ",cas); if(ans%3==0){ printf("YES\n"); }else{ printf("NO\n"); } } return 0; }