Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
124806 | 黄一航 | 时钟问题 | C++ | 运行超时 | 80 | 1013 MS | 29928 KB | 1325 | 2024-01-23 15:47:49 |
#include <bits/stdc++.h> //#pragma GCC optimize(2) using namespace std; vector<int> a(10); vector<int> b(10); queue<pair<vector<int>,string> > q; int dx[10][10] = {{},{0,1,1,0,1,1,0,0,0,0},{0,1,1,1,0,0,0,0,0,0},{0,0,1,1,0,1,1,0,0,0},{0,1,0,0,1,0,0,1,0,0}, {0,0,1,0,1,1,1,0,1,0},{0,0,0,1,0,0,1,0,0,1},{0,0,0,0,1,1,0,1,1,0},{0,0,0,0,0,0,0,1,1,1},{0,0,0,0,0,1,1,0,1,1}}; map<vector<int>,bool> vis; inline int read() { register int res = 0,f = 1; char c = getchar(); while (!isdigit(c)) { if (c == '-') f = -1; c = getchar(); } while (isdigit(c)) { res = (res << 1) + (res << 3) + (c ^ 48); c = getchar(); } return res * f; } signed main() { ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); for (register int i = 1; i <= 9; i++) a[i] = read(); q.push({a,""}); while (q.size()) { a = q.front().first; string s = q.front().second; q.pop(); bool flag = true; for (register int i = 1; i <= 9; i++) if (a[i] != 0) { flag = false; break; } if (flag) { cout << s << '\n'; break; } for (register int i = 1; i <= 9; i++) { for (register int j = 1; j <= 9; j++) b[j] = (a[j] + dx[i][j]) % 4; if (!vis[b]) { q.push({b,s + (char)(i + '0')}); vis[b] = true; } } } return 0; }