题目地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=740
思路:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <queue>
#include <stack>
#include <map>
#include <cstring>
#include <climits>
#include <cmath>
#include <cctype>
const int inf = 0x3f3f3f3f;//1061109567
typedef long long LL;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
using namespace std;
int a[10010];
int dp[10010][5][5];
int cost[5][5];
int main()
{
for(int i=1; i<=4; i++)
{
cost[0][i] = 2;
cost[i][i] = 1;
int k = i + 1;
if(k == 5)
k = 1;
cost[i][k] = cost[k][i] = 3;
}
cost[2][4] = cost[4][2] = 4;
cost[1][3] = cost[3][1] = 4;
while(true)
{
memset(dp,0,sizeof(dp));
int k = 0;
scanf("%d",&a[k]);
if(a[k] == 0)
break;
k++;
while(scanf("%d",&a[k]) && a[k])
{
k++;
}
k--;
dp[0][a[0]][0] = 2;
dp[0][0][a[0]] = 2;
for(int i=1; i<k; i++)
{
dp[i][j]
}
}
return 0;
}