命名那个数字
时间:2022-07-25
本文章向大家介绍命名那个数字,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
P3864 [USACO1.2]命名那个数字 Name That Number
分析:此题本来有个极复杂的代码,后来看了某位大佬的stl解法,感觉极为简便自己写了一个,
采用*lower_bound指针操作学到了(其功能是查询区间中匹配字符串)
还有substr(n)b表示截取第n个字符后的字符串,(substr的一种用法)
#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<iomanip>
using namespace std;
string s[5000],k[3*3*3*3*3*3*3*3*3*3*3*3+1];
string num,key[10]={"","","ABC","DEF","GHI","JKL","MNO","PRS","TUV","WXY"};
int cnt,flag;
void dfs(string num,string result)
{
if(num.empty())
{
k[cnt++]=result;
return ;
}
for(int i=0;i<3;i++)dfs(num.substr(1),result+key[num[0]-'0'][i]);
return ;
}
int main()
{
ios::sync_with_stdio(false);
cin>>num;
for(int i=1;i<=4617;i++)
{
cin>>s[i];
}
dfs(num,"");
for(int i=0;i<cnt;i++)
{
if(*lower_bound(s+1,s+4618,k[i])==k[i])
{
cout<<*lower_bound(s+1,s+4618,k[i])<<endl;
flag=1;
}
}
if(!flag)cout<<"NONE"<<endl;
return 0;
}
- 如何在RedHat7上使用Bind搭建DNS服务
- 如何在Redhat7.3的CDH5.14中启用Kerberos
- 如何使用SAML配置Cloudera Manager的身份验证
- 如何使用Shibboleth搭建IDP服务并集成OpenLDAP
- 如何获取Hive正在执行或者已结束的的MapReduce作业的SQL语句
- 如何启用Oozie的HA
- 如何使用Oozie API接口向Kerberos环境的CDH集群提交Spark作业
- 如何降级Cloudera Manager和CDH
- 如何在CDH中安装和使用StreamSets
- 如何使用Oozie API接口向非Kerberos环境的CDH集群提交Shell工作流
- 如何使用Oozie API接口向非Kerberos环境的CDH集群提交Java作业
- 如何通过Livy的RESTful API接口向Kerberos环境的CDH集群提交作业
- 如何使用Oozie API接口向非Kerberos环境的CDH集群提交Spark作业
- Joomla 权限提升漏洞(CVE-2016-9838)分析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 不会吧不会吧,你不会还不知道这些提高JS代码质量的骚操作吧?
- Flask架站基础篇(一)--环境配置
- Flask架站基础篇(三)--Flask生成文件内容和文件夹详解
- Flask架站基础篇(四)--URL
- Flask架站基础篇(六)--mysql-python 安装
- Flask架站基础篇(五)----Jinja2模板
- Flask架站基础篇(七)--SQLAlchemy(1)
- JavaScript 进阶教程(1)--面向对象编程
- Flask架站基础篇(八)--SQLAlchemy(2)
- JavaWeb - EL and JSTL
- Python模拟登陆新版知乎
- 第一天:创建型模式--工厂方法模式
- 第二天:创建型模式--抽象工厂模式
- 第三天:创建型模式--建造者模式
- JavaScript 进阶教程(2)---面向对象实战之贪吃蛇小游戏