usaco 1.23
来源:互联网 发布:vb和易语言 编辑:程序博客网 时间:2024/06/07 06:08
1.深搜,dfs写得丑了点,但是够用了。
2.string去掉末尾字符的方法
/*ID: zhangw31PROG: namenumLANG: C++*/#include <iostream>#include <fstream>#include <string>#include <set>using namespace std;string legalname;string number;string testname;int len;set<string> dict;ifstream fin("namenum.in");ofstream fout("namenum.out");ifstream fdict("dict.txt");int counting;void test() {if (dict.count(testname) != 0) {fout << testname << endl;counting ++;}}void dfs(int i) {if (i == len) {test();return;}else if (number[i] == '2') {testname += 'A'; dfs(i + 1);testname.erase(testname.end()-1);testname += 'B'; dfs(i + 1);testname.erase(testname.end()-1);testname += 'C'; dfs(i + 1);testname.erase(testname.end()-1);}else if (number[i] == '3') {testname += 'D'; dfs(i + 1);testname.erase(testname.end()-1);testname += 'E'; dfs(i + 1);testname.erase(testname.end()-1);testname += 'F'; dfs(i + 1);testname.erase(testname.end()-1);}else if (number[i] == '4') {testname += 'G'; dfs(i + 1);testname.erase(testname.end()-1);testname += 'H'; dfs(i + 1);testname.erase(testname.end()-1);testname += 'I'; dfs(i + 1);testname.erase(testname.end()-1);}else if (number[i] == '5') {testname += 'J'; dfs(i + 1);testname.erase(testname.end()-1);testname += 'K'; dfs(i + 1);testname.erase(testname.end()-1);testname += 'L'; dfs(i + 1);testname.erase(testname.end()-1);}else if (number[i] == '6') {testname += 'M'; dfs(i + 1);testname.erase(testname.end()-1);testname += 'N'; dfs(i + 1);testname.erase(testname.end()-1);testname += 'O'; dfs(i + 1);testname.erase(testname.end()-1);}else if (number[i] == '7') {testname += 'P'; dfs(i + 1);testname.erase(testname.end()-1);testname += 'R'; dfs(i + 1);testname.erase(testname.end()-1);testname += 'S'; dfs(i + 1);testname.erase(testname.end()-1);}else if (number[i] == '8') {testname += 'T'; dfs(i + 1);testname.erase(testname.end()-1);testname += 'U'; dfs(i + 1);testname.erase(testname.end()-1);testname += 'V'; dfs(i + 1);testname.erase(testname.end()-1);}else if (number[i] == '9') {testname += 'W'; dfs(i + 1);testname.erase(testname.end()-1);testname += 'X'; dfs(i + 1);testname.erase(testname.end()-1);testname += 'Y'; dfs(i + 1);testname.erase(testname.end()-1);}}int main() {while (fdict >> legalname) dict.insert(legalname);fin >> number;len = number.length();dfs(0);if (!counting) fout << "NONE" << endl;fdict.close();fin.close();fout.close();}
0 0
- usaco 1.23
- USACO
- USACO
- usaco
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- USACO
- TFS账户说明及相关问题
- Android 下载文件至SD卡,并用progressBar显示下载进度
- C++线程池的实现
- 使用服务提升程序的权限及不同用户切换时显示客户端程序的图标
- RDO、SAD、SATD、λ(转贴) - [h.264]
- usaco 1.23
- error 2005:libcmtd.lib和msvcrt.lib冲突
- 训练局限玻尔斯曼机(Training Restricted Boltzmann Machines)----第一讲 介绍
- DevOps是一门哲学
- SQL<一>--游标使用
- UBOOT移植OK210开发板
- 创客文章
- Poj 1041 John's trip (Fleury算法求欧拉回路路径)
- OSWORKFLOW+JDBC事务处理