APTX部落

  • ACGN
  • Coding
  • WebServer
  • Daily
  • Share
  • Bangumi
APTX Blog
A Moe Blog Set Up By Mizuki
  1. 首页
  2. OI
  3. 正文

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

2018年4月24日 1166点热度 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; //换行 
	}
}

 

标签: C/C++ C++ 字符串 模拟 洛谷
最后更新:2018年4月24日

神楽坂 みずき

萌萌萌,好萌!

点赞
< 上一篇
下一篇 >

文章评论

取消回复

神楽坂 みずき

萌萌萌,好萌!

搜索
最新 热点 随机
最新 热点 随机
私たちの居る理由 《サクラノ詩》VI 章 直哉与蓝对话 从《AMRITA》到《HELLO WORLD》── 野﨑まど世界观下的个体与世界的真实感 几种云端 VSCode/类 VSCode 方案对比与部署 Summer Pockets REFLECTION BLUE 豪華限定版 早期予約色紙付き/通販・店舗対応版 React 配合后端热更新
#动漫#升起的烟花,从下面看?还是从侧面看? 1080P 家用无线组网最终方案 #动漫#刀剑神域第一季1-25 1080P Linux中zip/unzip命令简略笔记 《サクラノ詩》VI 章 直哉与蓝对话 C++快速幂
标签聚合
C/C++ 洛谷 动漫 日常 HTML OI ST C++
分类
  • ACGN
  • Coding
  • Daily
  • OI
  • Share
  • WebServer

COPYRIGHT © 2022 APTX部落. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang