1 条题解
-
0
#include<iostream> #include<cstdio> #include<string.h> using namespace std; int tri[10][3]; bool vis[10][4]; int way; void dfs(int a, int b, int c, int d) { b++; if(b == 6) { int n1 = 0; if(tri[0][d] == tri[a][c]) { vis[a][c] = 1; for(int i = 0; i < 6; i++) { for(int j = 0; j < 3; j++) { if(!vis[i][j]){n1 += tri[i][j];break;} } } if(way < n1)way = n1; vis[a][c] = 0; } return ; } vis[a][3] = 1; if(b != 6) { vis[a][c] = 1; for(int i = 0; i < 6; i++) { if(!vis[i][3]) { for(int k = 0; k < 3; k++) { if(tri[i][k] == tri[a][c]) { vis[i][k] = 1; int next = (k + 1) % 3; dfs(i, b, next, d); vis[i][k] = 0; } } } } vis[a][c] = 0; } vis[a][3] = 0; return ; } int main() { int y = 1; char cc; while(y) { memset(vis, 0, sizeof vis); y = 0; way = 0; for(int i = 0; i < 6; i++) scanf("%d%d%d", &tri[i][0], &tri[i][1], &tri[i][2]); vis[0][2] = 1; dfs(0, 0, 0, 2); vis[0][2] = 0; vis[0][0] = 1; dfs(0, 0, 1, 0); vis[0][0] = 0; vis[0][1] = 1; dfs(0, 0, 2, 1); vis[0][1] = 0; if(way != 0)printf("%d\n", way); else printf("none\n"); scanf("\n"); scanf("%c", &cc); if(cc == '*')y = 1; else y = 0; } return 0; }
- 1
信息
- ID
- 575
- 时间
- 1000ms
- 内存
- 10MiB
- 难度
- 9
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者