LuoguP7534 [COCI2016-2017#4] Kartomat 题解
Content
火车站里头有一个售票机,其键盘可以看作是一个 \(4\times 8\) 的矩阵,其中第一行的前面三个键和最后一行的最后三个键都是 *,剩余的键按照从上到下,从左到右的顺序依次按照 A~Z 的顺序排列。售票机可以买去往 \(n\) 个城市的票。
现在你向售票机里面输入了一个长度为 \(k\) 的字符串,售票机会将以这个字符串为前缀且长度 \(\geqslant k+1\) 的所有城市的名字中的第 \(k+1\) 个字母显示在键盘中这个字母原来所在的位置上,其余的键则用 * 代替,求最终键盘上的情况(按照前文所述的 \(4\times 8\) 矩阵的格式输出)。
数据范围:\(1\leqslant n\leqslant 50\)。
Solution
先给大家推荐一个和这题完全一样的题目:P4470,按照年份来看的话应该是 BJWC 蒯了 COCI 的。
然后话回正题。我们先比对一下看这个字符串是否包含这个前缀且长度 \(\geqslant k+1\),这题目中完全可以暴力一个一个字符比对,然后将所有满足要求的字符串的第 \(k+1\) 个字母保存,最后直接输出显示了所有保存的字母的键盘即可。
Code
这份代码原封不动地蒯过去可以直接过 P4470。
int n, vis[57], ans[27];
string s[57];
int main() {
n = Rint;
F(i, 1, n) {cin >> s[i]; vis[i] = 1;}
cin >> s[n + 1]; int len = s[n + 1].size();
F(i, 1, n) F(j, 0, len - 1)
if(s[n + 1][j] != s[i][j]) {vis[i] = 0; break;}
F(i, 1, n) if(vis[i] && len != s[i].size() && !ans[s[i][len] - 'A']) ans[s[i][len] - 'A'] = 1;
printf("***");
F(i, 0, 25) {
putchar(ans[i] ? i + 'A' : '*');
if(i == 4 || i == 12 || i == 20) puts("");
}
return printf("***"), 0;
}
LuoguP7534 [COCI2016-2017#4] Kartomat 题解的更多相关文章
- 「COCI2016/2017 Contest #2」Bruza
「COCI2016/2017 Contest #2」Bruza 解题思路 : 首先对于任意时刻 \(i\) ,硬币一定移动到了深度为 \(i\) 的节点,所以第 \(i\) 时刻 Danel 一定染掉 ...
- World Finals 2017 (水题题解)
看大佬做2017-WF,我这种菜鸡,只能刷刷水题,勉强维持生活. 赛后补补水题. 题目pdf链接,中文的,tls翻译的,链接在这里 个人喜欢在vjudge上面刷题. E Need for Speed ...
- Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2) 题解【ABCDE】
A. Vicious Keyboard 题意:给你一个字符串,里面只会包含VK,这两种字符,然后你可以改变一个字符,你要求VK这个字串出现的次数最多. 题解:数据范围很小,暴力枚举改变哪个字符,然后c ...
- CODE FESTIVAL 2017 qual A 题解
补一发A的题解. A - Snuke's favorite YAKINIKU 题意: 输入字符串S,如果以YAKI开头输出Yes,否则输出No. #include<bits/stdc++.h&g ...
- 2017 CCPC杭州 题解
2017CCPC杭州题目PDF Problem A. Super-palindrome 题解: 给你一个字符串,每一步可以将一个字符替换为另一个字符,问你最少多少步可以使得,该字符串任意奇数子串为回文 ...
- google Kickstart Round F 2017 四道题题解
Problem A. Kicksort 题意抽象一下为: 对于一个每次都从数列正中间取划分数的快速排序,给定一个1-n的排列,问快排的复杂度对于这个排列是否会退化为最坏复杂度. 数据范围: 测试组数1 ...
- google Kickstart Round G 2017 三道题题解
A题:给定A,N,P,计算A的N!次幂对P取模的结果. 数据范围: T次测试,1 ≤ T ≤ 100 1<=A,N,P<=105 快速幂一下就好了.O(nlogn). AC代码: #inc ...
- CODE FESTIVAL 2017 qual B 题解
失踪人口回归.撒花\^o^/ 说来真是惭愧,NOI之后就没怎么刷过题,就写了几道集训队作业题,打了几场比赛还烂的不行,atcoder至今是蓝名=.= 以后还是多更一些博客吧,我可不想清华集训的时候就退 ...
- CODE FESTIVAL 2017 qual C 题解
传送门 \(A\) 咕咕 const int N=15; char s[N];int n; int main(){ scanf("%s",s+1),n=strlen(s+1); f ...
随机推荐
- 一个没被spring管理的类怎么创建对象并使用里面的方法
一个对象new出来的,如果不是构造器注入@Data 也不好使啊,尝试构造器注入一下,或者set进去 第二次尝试使用这个. 向这种只能构造器注入或者通过上面的set方法来注入了,component是不好 ...
- 权限树的制作(menu)
原来demo 实体类:get.set 1.使用递归的方式将数据查询出来. 2.为了减少数据库交互,一次查询所有数据,遍历集合,然后先判断父节点,如果不是父节点,用原集合重新遍历 3.map形式减少遍历 ...
- 图片处理看这篇就完了「GitHub 热点速览 v.21.48」
作者:HelloGitHub-小鱼干 图像处理一直是个实用且热门的研究领域,而本周的 GitHub 项目则多个图像项目上榜.先是勉强和图像处理搭边的渲染引擎 Filament,它能渲染出效果极佳的 3 ...
- redis的RDB和AOF两种持久化机制
思维导图:我的redis基础知识汇总 RDB持久化机制的优点 (1)RDB会生成多个数据文件,每个数据文件都代表了某一个时刻中redis的数据,这种多个数据文件的方式,非常适合做冷备,可以将这种完整的 ...
- CF1550D Excellent Arrays
考虑每个数一定是这个形式: \(i + x,i - x\) 所以如果我们要构造一个最大的数组. 那一定是这样的形式: 有一半为\(i + x\),有一半\(i - x\) 那么我们发现每个数有这样一个 ...
- 基于PASA进行基因预测
PASA, acronym for Program to Assemble Spliced Alignments, is a eukaryotic genome annotation tool tha ...
- fping (比ping更强大的ping工具)
Fping程序类似于ping(ping是通过ICMP(网络控制信息协议InternetControl Message Protocol)协议回复请求以检测主机是否存在).Fping与ping不同的地方 ...
- SIG -MESH -1
协议栈 node:成为蓝牙mesh网络中一员的设备被称为节点(Node). 蓝牙mesh规格定义了节点可能拥有的特性.具有这些特性中的一个或多个,即表示节点可以在网络中扮演相应的特殊角色.定义的 ...
- 避免UE4项目VS中误改源码.h文件导致编译时间长
最近几天两次触发VS中误改UE4源码头文件,导致需要编译大量源码的情况:再好的习惯也有不可靠的时候,还是需要可靠方案解决这个问题:官方提供了预编译版本(即从Launcher中下载的版本),但是对于程序 ...
- 日常Java 2021/10/26
HashSet基于HashMap来实现的,是一个不允许有重复元素的集合.HashSet 允许有null 值. HashSet是无序的,即不会记录插入的顺序. HashSet不是线程安全的,如果多个线程 ...