The Tower of Babylon UVA-437(状態の説明、最長経路)
871 ワード
#include
using namespace std;
typedef long long ll;
const int maxn=100;
int mp[maxn][maxn];
int dp[maxn][3];
struct Martix{
int val[3];
Martix(){}
Martix(int _a,int _b,int _c){
val[0]=_a,val[1]=_b,val[2]=_c;
}
}mat[maxn];
int n;
int t1[3],t2[3],v1[3],v2[3];
int check(int id1,int a,int id2,int b){
memset(v1,0,sizeof(v1));
memset(v2,0,sizeof(v2));
v1[a]=1;v2[b]=1;
int cnt=0;
for(int i=0;i<3;i++){
if(!v1[i]) t1[cnt++]=i;
}
cnt=0;
for(int i=0;i<3;i++){
if(!v2[i]) t2[cnt++]=i;
}
if(mat[id1].val[t1[0]]