题意:给四种方块,每种方块都可以顺时针和逆时针旋转。
A把很多这四种方块用一根木棍串起来,形成一个图形,求至少需要旋转多少次能达成一个角只有一种颜色。
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <set> #include <vector> #include <map> #include <queue> #include <set> #include <algorithm> using namespace std; int mapp[5][5]; int getval(int x,int y){ int cnt=0; for(int i=1;i<=2;i++){ for(int j=1;j<=2;j++){ cnt+=min(abs(mapp[i][j]-mapp[x][y]),4-abs(mapp[i][j]-mapp[x][y])); } } return cnt; } int main() { while(1){ int flag=0; for(int i=1;i<=4&&flag!=EOF;i++) for(int j=1;j<=4&&flag!=EOF;j++) flag=scanf("%d",&mapp[i][j]); if(flag==EOF)break; int mm=1000; for(int i=1;i<=2;i++){ for(int j=1;j<=2;j++){ int vv=getval(i,j); if(mm>vv)mm=vv; } } printf("%d\n",mm); } return 0; }
|