USACO中name that number的解法
来源:互联网 发布:淘宝促销活动 编辑:程序博客网 时间:2024/06/18 13:46
这个题出的很有技巧,我做了三四遍没有AC,(我的水平水)*##,上网看了一下,找到了一个非常好的思路,
具体如下,每一组数字代表着N中不同的字符串,同理,每一个字符串都只对应着一组数字,
如果读取数字转成一大堆字符串,再从dic中找,时间复杂度非常大,所以,我们可以从dic中读取
字符串,然后全部转为数字,从比赛给的file.in文件中读取数字,直接和dic中转换出来的数字进行匹配
,这样便可迅速找出你所需要的字符串。
/*ID: karlPROG: namenumLANG: C++*/#include <iostream>#include <fstream>#include <string>#include <sstream>using namespace std;string name2number(string name){ char c=0; int value=0; ostringstream buf; for(string::iterator iter=name.begin();iter!=name.end();iter++){ c=*iter; if(c>'Q'){ value = (c-1-'A')/3 + 2; }else{ value = (c-'A')/3 + 2; } buf<<value; } return buf.str();}int main() { ofstream fout("namenum.out"); ifstream fin("namenum.in"); ifstream dict_fin("dict.txt"); string value; fin>>value; //cout<<value<<endl; string name; bool not_found=true; while(dict_fin>>name){ string number = name2number(name); //cout<<"name:"<<name<<"-->"<<number<<endl; if(number != value) continue; fout<<name<<endl; not_found=false; } if(not_found) fout<<"NONE"<<endl; dict_fin.close(); fin.close(); fout.close(); return 0;}
- USACO中name that number的解法
- USACO:Name That Number
- Name That Number(USACO)
- [USACO] Name That Number
- USACO Name That Number
- usaco Name That Number
- usaco Name That Number
- [USACO]Name That Number
- USACO:Name That Number
- Name That Number USACO
- USACO Name That Number
- USACO Name That Number
- USACO--Name That Number
- USACO 1.2-Name That Number
- USACO 1.2 Name That Number
- usaco 29 name that number
- USACO 1.2 Name That Number
- USACO--1.2Name That Number
- Android 复制内容到黏贴版
- ofbiz Condition,Action,Screen
- JPA Doc On Oracle
- 【转】Android 调试技术
- DWZ双窗口刷新
- USACO中name that number的解法
- 双系统(CentOS和XP)的系统时间相差8小时
- Weka 开发[1]-Instances类
- 关于载波与发送数据
- spring-data-mongo :Error creating bean with name 'indexCreationHelper':
- 光纤通道协议网络拓扑结构简介
- TQ2440裸板更新程序_update
- java 连接mysql数据库
- Windows对话框程序的大小与DPI的关系