您的位置:首页 > 其它

USACO Name That Number(水题暴力)

2015-09-30 21:16 423 查看
直接对于字典中的每一个字符串扫描,看看是否等价于输入的数字。   网上有的人做的也太麻烦了。

细节参见代码:

/*
ID: m1785421
LANG: C++
TASK: namenum
*/
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<list>
#include<sstream>
#include<fstream>
using namespace std;
typedef long long ll;
const int INF = 1000000000;
const int maxn = 11;
int n,m;
map<char, int> p;
void init() {
char c = 'A';
for(int i = 2; i <= 9; i++) {
p[c] = i; c++; if(c == 'Q' || c == 'Z') c++;
p[c] = i; c++;if(c == 'Q' || c == 'Z') c++;
p[c] = i; c++;if(c == 'Q' || c == 'Z') c++;
}
}
char s[20];
string dict;
int main() {
freopen("namenum.in","r",stdin);
freopen("namenum.out","w",stdout);
ifstream buf("dict.txt");
init();
scanf("%s",s);
n = strlen(s);
bool flage = false;
while(buf >> dict) {
int len = dict.size();
if(n != len) continue;
bool ok = true;
for(int i = 0; i < len; i++) {
char c = dict[i];
int v = p[c];
int u = s[i] - '0';
if(v != u) { ok = false; break; }
}
if(ok) cout<<dict<<"\n", flage = true;
}
if(!flage) printf("NONE\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  USACO uva acm-icpc 暴力