APTX博客

  • ACGN
  • Coding
  • DevOps
  • Daily
  • Share
  • Bangumi
APTX Blog
A Moe Blog Set Up By ミズキ
  1. 首页
  2. OI
  3. 正文

#洛谷#C/C++P4470 [BJWC2018]售票

2018年4月24日 1506点热度 0人点赞 0条评论

题目描述

C 市火车站最近出现了一种新式自动售票机。买票时,乘客要先在售票机上输入终点名称。一共有N 处:目的地,随着乘客按顺序输入终点名称的每个字母,候选终点站数目会逐渐减少。

在自动售票机屏幕上,有一个4 行8 列的键盘,如下图所示。

在乘客每输入一个字母后,键盘上只有有效字符是可选的(取决于还有哪些候选终点站),其余的字母会被字符'*' 取代。

告诉你N 处目的地的名称,以及乘客已经输入的若干字符,请你输出键盘目前的状态。

输入输出格式

输入格式:

第一行为一个整数N (1≤N ≤50)。接下来N 行,每行一个由大写英文字母组成的长度不超过100 的字符串,表示一处目的地。最后一行,一个长度不超过100 的字符串,表示按顺序输入的若干字符。

输出格式:

输出4 行,每行一个长度为8 的字符串,表示键盘状态。

输入样例#1:

4
ZAGREB
SISAK
ZADAR
ZABOK
ZA

输出样例#1:
****B*D*
*G******
********
********

********

说明

【样例解释】

输入ZA 以后,下一个字符可能是G(终点站有可能是ZAGREB),或D(终点站有可能是ZADAR ),或B(终点站有可能是ZABOK )。

本人提供的题解

简单的模拟,注意,千万别开ios的那个同步,全WA

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<string>
#include<cstring>
using namespace std;

const int maxn(55);
string tmp[maxn];
string a[4]={ 
	"***ABCDE",
	"FGHIJKLM",
	"NOPQRSTU",
	"VWXYZ***",
};
bool vis[4][9]={0}; //标记 
string temp;
inline void work(char);
inline void print(void);

int main(){
	//ios::sync_with_stdio(false); 别开这个 
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;++i){
		cin>>tmp[i];
		transform(tmp[i].begin(),tmp[i].end(),tmp[i].begin(),::toupper); //转换成大写 
	}
	cin>>temp;
	transform(temp.begin(),temp.end(),temp.begin(),::toupper);//转换成大写 
	int len=temp.length();
	for(int i=0;i<n;++i){
		string t=tmp[i].substr(0,len); //截取字符串 
		if(t!=temp) continue; //如果不相等的话就不进行判断 
		else {
			char c=tmp[i][len];
			work(c);
		}
	}
	print();
	return 0;
}
inline void work(char c){
	for(int i=0;i<4;++i){
		for(int j=0;j<8;++j){
			if(a[i][j]==c){
				vis[i][j]=1; //标记 
				break;
			}
		}
	}
}
inline void print(void){
	for(int i=0;i<4;++i){
		for(int j=0;j<8;++j){
			if(vis[i][j]==true) cout<<a[i][j]; //如果被标记就输出 
			else cout<<"*"; //否则输出* 
		}
		cout<<endl; //换行 
	}
}

 

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: C/C++ C++ 字符串 模拟 洛谷
最后更新:2018年4月24日

神楽坂 みずき

萌萌萌,好萌!

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

神楽坂 みずき

萌萌萌,好萌!

搜索
最新 热点 随机
最新 热点 随机
站点域名变更通知 私たちの居る理由 《サクラノ詩》VI 章 直哉与蓝对话 从《AMRITA》到《HELLO WORLD》── 野﨑まど世界观下的个体与世界的真实感 几种云端 VSCode/类 VSCode 方案对比与部署 Summer Pockets REFLECTION BLUE 豪華限定版 早期予約色紙付き/通販・店舗対応版
Windows 10 Enterprise LTSC 2019 OEM 在线激活 Nginx internal 限制仅内部调用 HDU 1806 Frequent values(区间RMQ问题)题解 #洛谷#C/C++P1090 合并果子 #动漫#路人女主的养成方法第二季 1080P 人的一生都在治愈自己的童年
标签聚合
C++ 日常 ST 洛谷 C/C++ 动漫 OI HTML
分类
  • ACGN
  • Coding
  • Daily
  • DevOps
  • OI
  • Share

COPYRIGHT © 2017-2022 APTX博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang