아니면 dfs3HDU6333
1075 단어 차례로 해답을 구하다.
#include
#include
#include
using namespace std;
char s[16][16],w[16][16];
int Ans;
int vis[16];
void roate(int a,int b)
{
for(int i=0; i<4; i++)
for(int j=0; j<4; j++)
w[j][3-i]=s[a+i][b+j];
for(int i=0; i<4; i++)
for(int j=0; j<4; j++)
s[a+i][b+j]=w[i][j];
}
int tot;
bool check(int a,int b)
{
for(int i=a; i=Ans)return;//자르다
for(int t=0; t<4; t++)
{
if(check(i*4,j*4))
dfs(i,j+1,k+t);
roate(i*4,j*4);
}// 이동
}
void solve()
{
for(int i=0; i<16; i++)
scanf(" %s",s[i]);
for(int i=0; i<16; i++)
for(int j=0; j<16; j++)
if(s[i][j]<='9')
s[i][j]-='0';
else
s[i][j]=s[i][j]-'A'+10;//사전 처리
Ans=1000;
dfs(0,0,0);
cout<>t;
while(t--)
solve();
return 0;
}
직접 회전하여 최우해를 찾아내려면 dfs의 성질을 위해 매우 빨리 최우해를 찾아낼 수 있다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PAT - A급 - 1130.Infix Expression(25)제목 설명: Given a syntax tree (binary), you are supposed to output the corresponding infix expression, with parentheses ref...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.