概述
1.3.3 序号命名
题目考查
模拟
解题思路
由于数字按键与名字是一对多的关系, 因此我们每次读取名字后, 将其变回数字的形式, 判断是否与给出的数字相同即可.
考虑到将字符变回数字的方式: 我们最笨的情况枚举所有字母也是可以的. 或者找规律简化代码.
题目细节
- 题目说编号的长度为1~12, 因此注意开
long long
.
AC代码
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 1; i <= (n); ++i)
using namespace std;
typedef long long ll;
int fact(const char& c) {
if (c <= 'O') return (c - 'A') / 3 + 2;
if (c <= 'S') return 7;
if (c <= 'V') return 8;
return 9;
}
int main()
{
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
ll n; cin >> n;
string s; bool flag = 0;
while (cin >> s) {
ll num = 0;
for (auto& op : s) num = num * 10 + fact(op);
if (num == n) puts(s.c_str()), flag = 1;
}
if (!flag) puts("NONE");
return 0;
}
END
最后
以上就是坚定帅哥为你收集整理的USACO 1.3.3 序号命名1.3.3 序号命名的全部内容,希望文章能够帮你解决USACO 1.3.3 序号命名1.3.3 序号命名所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复