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 题解的更多相关文章

  1. 「COCI2016/2017 Contest #2」Bruza

    「COCI2016/2017 Contest #2」Bruza 解题思路 : 首先对于任意时刻 \(i\) ,硬币一定移动到了深度为 \(i\) 的节点,所以第 \(i\) 时刻 Danel 一定染掉 ...

  2. World Finals 2017 (水题题解)

    看大佬做2017-WF,我这种菜鸡,只能刷刷水题,勉强维持生活. 赛后补补水题. 题目pdf链接,中文的,tls翻译的,链接在这里 个人喜欢在vjudge上面刷题. E Need for Speed ...

  3. Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2) 题解【ABCDE】

    A. Vicious Keyboard 题意:给你一个字符串,里面只会包含VK,这两种字符,然后你可以改变一个字符,你要求VK这个字串出现的次数最多. 题解:数据范围很小,暴力枚举改变哪个字符,然后c ...

  4. CODE FESTIVAL 2017 qual A 题解

    补一发A的题解. A - Snuke's favorite YAKINIKU 题意: 输入字符串S,如果以YAKI开头输出Yes,否则输出No. #include<bits/stdc++.h&g ...

  5. 2017 CCPC杭州 题解

    2017CCPC杭州题目PDF Problem A. Super-palindrome 题解: 给你一个字符串,每一步可以将一个字符替换为另一个字符,问你最少多少步可以使得,该字符串任意奇数子串为回文 ...

  6. google Kickstart Round F 2017 四道题题解

    Problem A. Kicksort 题意抽象一下为: 对于一个每次都从数列正中间取划分数的快速排序,给定一个1-n的排列,问快排的复杂度对于这个排列是否会退化为最坏复杂度. 数据范围: 测试组数1 ...

  7. 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 ...

  8. CODE FESTIVAL 2017 qual B 题解

    失踪人口回归.撒花\^o^/ 说来真是惭愧,NOI之后就没怎么刷过题,就写了几道集训队作业题,打了几场比赛还烂的不行,atcoder至今是蓝名=.= 以后还是多更一些博客吧,我可不想清华集训的时候就退 ...

  9. 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 ...

随机推荐

  1. Spring Cloud Alibaba微服务一站式解决方案-开篇v2.2.1.RELEASE

    学习路线 **本人博客网站 **IT小神 www.itxiaoshen.com 生态概述 架构演进 什么是微服务 https://martinfowler.com/microservices/ Mic ...

  2. Linux检测磁盘空间

    在linux中,文件系统将所有的磁盘都并入一个虚拟目录下,在使用新的存储媒体之前,需要把它放到虚拟目录下,这项工作称为挂载. 1.mount命令 mount会输出当前系统上挂载的设备列表,要在虚拟目录 ...

  3. Codeforces 1225G - To Make 1(bitset+状压 dp+找性质)

    Codeforces 题目传送门 & 洛谷题目传送门 还是做题做太少了啊--碰到这种题一点感觉都没有-- 首先我们来证明一件事情,那就是存在一种合并方式 \(\Leftrightarrow\) ...

  4. Codeforces 446D - DZY Loves Games(高斯消元+期望 DP+矩阵快速幂)

    Codeforces 题目传送门 & 洛谷题目传送门 神仙题,%%% 首先考虑所有格子都是陷阱格的情况,那显然就是一个矩阵快速幂,具体来说,设 \(f_{i,j}\) 表示走了 \(i\) 步 ...

  5. Linux环境下R和R包安装及其管理

    前言 R对windows使用很友好,对Linux来说充满了敌意.小数据可以在windows下交互操作,效果很好很棒.可是当我们要处理大数据,或者要在集群上搭建pipeline时,不得不面对在Linux ...

  6. MAFFT 进行多序列比对

    简介 最经典和广为熟知的多序列比对软件是 clustalw . 但是现有的多序列比对软件较多,有文献报道:比对速度(Muscle>MAFFT>ClustalW>T-Coffee),比 ...

  7. js ajax 请求

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 架构B/S和C/S的区别

    CS = Client - Server = 客戶端 - 服務器.例子: QQ,迅雷,快播,暴風影音,各種網絡遊戲等等.只要有和服務器通訊的都算. CS(Client/Server):客户端----服 ...

  9. arm三大编译器的不同选择编译

    ARM 系列目前支持三大主流的工具链,即ARM RealView (armcc), IAR EWARM (iccarm), and GNU Compiler Collection (gcc).     ...

  10. 中小型企业SaaS行业将崛起于新十年

    2020开始的新十年,国内中小型企业SaaS市场将迎来蓬勃生机,四大助推器已经就绪 第一,云服务打好底座: 随着阿里云.腾讯云乃至华为云的蓬勃发展,基础设施的不断完善,为中小型Saas企业的发展,提供 ...