USACO 1.2 Name That Number
2012-10-21 22:04
387 查看
这个题真是无聊,今天做完CF,就在整这个题。。。开始理解错了题意了,发现给了一个文件的字典,文件的读入读出,早忘的差不多了,读出只能把一个字典,读成一个字符串,写了好长时间,改了N处,终于过了。。。做CF被虐爆,做这个更是被虐爆了。。。
/* ID: cuizhe LANG: C++ TASK: namenum */ #include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <map> using namespace std; char txt[10000000]; map<char,int>mm; long long o[13]; int main() { int len,str,i,j,z; long long n,sum; FILE *fp; char *q = txt; freopen("namenum.in","r",stdin); fp = fopen("dict.txt","r"); scanf("%lld",&n); freopen("namenum.out","w",stdout); fread(q,sizeof(txt),1,fp); len = strlen(txt); mm['A'] = 2; mm['B'] = 2; mm['C'] = 2; mm['D'] = 3; mm['E'] = 3; mm['F'] = 3; mm['G'] = 4; mm['H'] = 4; mm['I'] = 4; mm['J'] = 5; mm['K'] = 5; mm['L'] = 5; mm['M'] = 6; mm['N'] = 6; mm['O'] = 6; mm['P'] = 7; mm['R'] = 7; mm['S'] = 7; mm['T'] = 8; mm['U'] = 8; mm['V'] = 8; mm['W'] = 9; mm['X'] = 9; mm['Y'] = 9; str = 0; z = 1; o[1] = 1; for(i = 2; i <= 12; i ++) o[i] = o[i-1]*10; for(i = 0; i <= len; i ++) { if(txt[i] == '\n') { sum = 0; for(j = str; j <= i-1; j ++) { sum += mm[txt[j]]*o[i-j]; } if(sum == n) { for(j = str; j <= i-1; j ++) printf("%c",txt[j]); printf("\n"); z = 0; } str = i+1; } } if(z) printf("NONE\n"); return 0; }
相关文章推荐
- USACO 1.2 Name That Number (查字典)
- USACO Section 1.2 Name That Number
- USACO section1.2 Name That Number
- 【多文件操作】【检索】Name That Number (Usaco_Training 1.2)
- 【USACO-Chapter1-1.2】【模拟】Name That Number
- USACO Section 1.2 Name That Number 解题报告
- 【多文件操作】【检索】Name That Number (Usaco_Training 1.2)
- USACO 1.2 Name That Number
- USACO 1.2-Name That Number
- USACO-Section1.2 Name That Number [其他]
- USACO1.2 Name That Number
- USACO 1.2 - Name That Number(杂题)
- USACO 1.2 Name That Number (AD-hoc)
- USACO-Section 1.2 Name That Number[...]
- USACO 1.2 Name That Number (namenum)
- USACO Section1.2 Name That Number 解题报告
- 10.8做题——USACO1.2命名那个数字(Name That Number)
- USACO 1.2 Name That Number
- USACO Section 1.2 : Name That Number
- usaco 1.2 Name That Number(数字字母转化)