1 条题解
-
1
如果一个数应该亮的位置没亮,说明一定不亮。
如果一个数不该亮的位置亮了,说明一定常亮。
我们根据生活常识把每种灯应该点亮的位置存下来,对于这两种情况判断即可。
表格如下。请自行在程序内根据这个表格判断。
0: A B C D E F 1: B C 2: A B D E G 3: A B C D G 4: B C F G 5: A C D F G 6: A C D E F G 7: A B C 8: A B C D E F G 9: A B C D F G
#include <bits/stdc++.h> using namespace std; vector<int> a[10]; int n; string ans = "-------"; int main() { a[0] = {0, 1, 2, 3, 4, 5}; a[1] = {1, 2}; a[2] = {0, 1, 3, 4, 6}; a[3] = {0, 1, 2, 3, 6}; a[4] = {1, 2, 5, 6}; a[5] = {0, 2, 3, 5, 6}; a[6] = {0, 2, 3, 4, 5, 6}; a[7] = {0, 1, 2}; a[8] = {0, 1, 2, 3, 4, 5, 6}; a[9] = {0, 1, 2, 3, 5, 6}; cin >> n; while (n--) { string s; cin >> s; int k = s[0] ^ '0'; for (int i = 1; i < s.size(); i++) { bool ok = 0; for (int j : a[k]) if (j == s[i] - 'A') ok = 1; if (!ok) ans[s[i] - 'A'] = 'X'; } for (int j : a[k]) { bool ok = 0; for (int i = 1; i < s.size(); i++) if (j == s[i] - 'A') ok = 1; if (!ok) ans[j] = 'x'; } } cout << ans << endl; return 0; }
- 1
信息
- ID
- 957
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 17
- 已通过
- 12
- 上传者