Codeforces1092C. Prefixes and Suffixes——————思维,字符串

深度学习中的编码器-解码器架构 解码的作用:转换为人类可理解的形式,解码器的任务是将编码器生成的中间表示(上下文向量)转换回人类可理解的输出形式(如翻译后的文本、生成的图像描述等)。解码器通过逐步生成输出序列,使得最终的输出符合人类的理解和需求。编码的作用:转换为机器可理解的形式,编码器将输入数据(如文本、图像等)转换为一种机器更容易处理和理解的形式,即上下文向量或编码。在深度学习中,编码器(Encoder)解码器(Decoder)是常见的神经网络架构,通常用于处理序列到序列(seq2seq)任务,如机器翻译、文本摘要和图像描述等。 阅读详情

C. Prefixes and Suffixes

Ivan wants to play a game with you. He picked some string s of length n consisting only of lowercase Latin letters.

You don’t know this string. Ivan has informed you about all its improper prefixes and suffixes (i.e. prefixes and suffixes of lengths from 1 to n−1), but he didn’t tell you which strings are prefixes and which are suffixes.

Ivan wants you to guess which of the given 2n−2 strings are prefixes of the given string and which are suffixes. It may be impossible to guess the string Ivan picked (since multiple strings may give the same set of suffixes and prefixes), but Ivan will accept your answer if there is at least one string that is consistent with it. Let the game begin!

Input

The first line of the input contains one integer number n (2≤n≤100) — the length of the guessed string s.

The next 2n−2 lines are contain prefixes and suffixes, one per line. Each of them is the string of length from 1 to n−1 consisting only of lowercase Latin letters. They can be given in arbitrary order.

It is guaranteed that there are exactly 2 strings of each length from 1 to n−1. It is also guaranteed that these strings are prefixes and suffixes of some existing string of length n.

Output

Print one string of length 2n−2 — the string consisting only of characters ‘P’ and ‘S’. The number of characters ‘P’ should be equal to the number of characters ‘S’. The i-th character of this string should be ‘P’ if the i-th of the input strings is the prefix and ‘S’ otherwise.

If there are several possible answers, you can print any.

Examples

input

5
ba
a
abab
a
aba
baba
ab
aba

output

SPPSPSPS

input

3
a
aa
aa
a

output

PPSS

input

2
a
c

output

PS

Note

The only string which Ivan can guess in the first example is “ababa”.

The only string which Ivan can guess in the second example is “aaa”. Answers “SPSP”, “SSPP” and “PSPS” are also acceptable.

In the third example Ivan can guess the string “ac” or the string “ca”. The answer “SP” is also acceptable.


题意:
伊万想和你一起玩游戏。,他挑选了一些长度为n的字符串,仅由小写拉丁字母组成。 ,你不知道这个字符串。 伊万告诉了你所有的前缀和后缀(即前缀和后缀长度从1到n-1),但他没有告诉你哪些字符串是前缀,哪些是后缀。
伊万希望你猜测给定的2n-2个字符串中哪一个是给定字符串的前缀,哪些是后缀。你可能无法猜出伊万选择的字符串(因为多个字符串可能会给出相同的后缀和前缀集),但如果至少有一个字符串与它一致,伊万将接受您的答案。,让游戏开始吧!
输入
输入的第一行包含一个整数n(2≤n≤100) - 字符串s的长度。
接下来的2n-2行,包含前缀和后缀,每行一个。,它们中的每一个都是长度从1到n-1的字符串,仅由小写拉丁字母组成。,它们可以任意顺序给出。
保证每个长度恰好有2个字符串,从1到n-1。,还保证这些字符串是一些长度为n的现有字符串的前缀和后缀。
输出
打印一串长度为2n-2的字符串 - 仅由字符“P”和“S”组成的字符串。,字符“P”的数量应该等于字符“S”的数量。,如果输入字符串的第i个是前缀,则该字符串的第i个字符应为“P”,否则为“S”。 ,如果有多个可能的答案,您可以打印任何答案。


思路:
把所有字符串记录下位置,然后按照长度排序;
将长度为1和n-1的字符串连起来,这样就构成了一个长度为n的字符串,一共有4中情况。
然后和给定的2n-2个前缀后缀比较,如果能够全部匹配,那就说明构造的这个长度为n的字符串(可能)是原串,比较的过程中记录一下那些是前缀,那些是后缀。最后输出就好

#include<bits/stdc++.h>
using namespace std;
const int MAXN = 307;
struct node{
        string s;
        int id;
}a[MAXN];
char ans[MAXN];
int n;
bool cmp(node x,node y)
{
        return x.s.size()<y.s.size();
}

bool isPre(string s,string t)//是前缀
{
        for(int i=0;i<t.size();++i)
                if(s[i]!=t[i])
                        return false;
        return true;
}
bool isSuf(string s,string t)//是后缀
{
        for(int i=t.size()-1;i>=0;--i)
                if(s[s.size()-t.size()+i]!=t[i])
                        return false;
        return true;
}

void slove(string S)
{
        for(int i=1;i<=n;i+=2)
        {
                if(isPre(S,a[i].s) && isSuf(S,a[i+1].s))//两个长度相同的子串必定有一个是前缀,一个后缀
                {
                        ans[a[i].id]='P';
                        ans[a[i+1].id]='S';
                        continue;
                }
                if(isPre(S,a[i+1].s) && isSuf(S,a[i].s))
                {
                        ans[a[i].id]='S';
                        ans[a[i+1].id]='P';
                        continue;
                }
                return ;
        }
        for(int i=1;i<=n;++i)
                cout<<ans[i];
        cout<<endl;
        exit(0);
}
int main()
{

        cin>>n;
        n = n*2 - 2;
        for(int i=1;i<=n;++i)
        {
                cin>>a[i].s;
                a[i].id = i;
        }
        sort(a+1,a+n+1,cmp);
        if(n==2)
        {
                puts("PS");
                return 0;
        }
        slove(a[1].s+a[n-1].s);
        slove(a[1].s+a[n].s);
        slove(a[2].s+a[n-1].s);
        slove(a[2].s+a[n].s);
        return 0;
}
uniapp - 详细手机端h5网页调用手机摄像头进行二维码识别扫描,在uniapp的H5移动端微信网页平台中,在浏览器中调用手机扫码功能详细教程,识别二维码并获取扫描结果(完整示例源码,一键复制即用 uniapp,h5,手机端网页,H5手机网页,uniapp开发h5实现扫码功能,uniapp微信h5网页扫码sdk使用教程,uniapp h5网页如何实现浏览器扫码,uniapp扫码功能怎么兼容h5_uniapph5怎么做扫码功能,uniapp的手机网页如何实现扫二维码一维码,浏览器H5实现js扫码,H5调用摄像头和扫一扫功能,亲测可用,H5调用本地摄像头实现扫一扫,uni-h5项目解决扫码功能,uniapp实现微信H5扫码,解决uniapp在H5端使用不能扫码问题,uni-app的h5扫码(二维码、条形码 阅读详情

相关推荐

tuts4you-lena151-Crackme-tutorial06

一、前言      本次研究的是lena151-Crackme-tutorial06,也是一个应用程序,但因为平台迭代的关系,程序不能正常运行,只能完成部分破解。 (一)·本次我们要破解的目标是个应用程序,如下图 (二)、使用工具:x32dbg 二、过程 这个程序的破解的方法很多,首先最简单的一种不外乎就是搜索字符串,我就按照这个思路来完成。 (一)查找字符串&lt;Unregis...

h123120的专栏 518

Prefixes and Suffixes

题目链接:http://codeforces.com/contest/1092/problem/C 题目大意:有一堆字符串,这些字符串是最初始字符串的一些前缀和后缀,现在让你判断输入的字符串是前缀(P)还是后缀(S),输入的字符串中是从1到n-1的长度,每种长度有两个,并按顺序打印出来。 思路:这题其实你只要想到初始的字符串应该有由什么组成,由什么能够确定下来。字符串由前缀和后缀就可...

dengcuo9877的博客 351

PX4代码解析(1)

前言 做pixhawk飞控有一段时间了,但在学习过程中遇到许多困难,目前网上找不到比较完整的PX4学习笔记,我打算结合自己理解,写写自己对PX4源码的理解,不一定对,只是希望与各位大佬交流交流,同时梳理一下无人机知识。 目前打算分享以下几个内容:代码架构;通信协议;姿态解算算法,控制算法。先这样,后面想到再加。本章先来聊聊px4代码结构 一、代码整体结构 既然要聊px4代码结构,那就先把px4代码结构图放出来,因为px4源码仍然在不断更新迭代,因此老版本与新版本目录结构可能有些不同,我的代码解析参考版本为V

qq_36903625的博客 1万+

英语语法 学习

• 表示地点的介词:at, in, on, above, below, over, under, near, beside, between, among, around, inside, outside。• 表示时间的介词:at, in, on, before, after, by, during, until, since, for, from, to。• 表示方向的介词:to, towards, along, across, through, past, from, off, onto。

厚积薄发 941

VASP计算层错能(SFE)全攻略2

本文介绍了使用VASP计算纯镍(Ni)层错能(SFE)的具体步骤。首先构建Ni的FCC单胞并扩展为超胞,通过修改原子位置引入堆垛层错;随后分别计算完美晶体和含层错结构的能量;最后通过能量差与层错面积之比求得SFE值。计算需注意k点网格、截断能和超胞尺寸的收敛性测试,并推荐使用PAW赝势和ASE等工具辅助结构构建。

weixin_50519490的博客 1986

剑灵解包器修改xml.dat文件修改乳量方法

本篇内容是基于单机版网游改单机版游戏剑灵的内容,主要针对关于单机版进行数据修改,当然了对于网端有关于剑灵已有很多,像小助手等多种可以更改,但是存在有封号危险,好,下面我们是在单机版中来进行乳量的修改教程。

灵魂学者的博客 3308

Codeforces 1092C Prefixes and Suffixes(思维)

题目链接:Prefixes and Suffixes 题意:给定未知字符串长度n,给出2n-2个字符串,其中n-1个为未知字符串的前缀(n-1个字符串长度从1到n-1),另外n-1个为未知字符串的后缀(n-1个字符串长度从1到n-1),判断这2n-2个字符串分别为前缀还是后缀。 题解:从2n-2从找个n-1长度的字符串和1长度的字符串拼接,判断该字符串是否符合要求,能作为未知字符串。符合的话,...

weixin_30685029的博客 172

VT System故障排查指南:从License验证到硬件连接全解析

本文详细解析VT System故障排查全流程,从License验证、Real Bus模式设置到硬件连接与VT6000组网配置。针对VT7900板卡等特殊设备提供专业解决方案,并分享系统级故障的二分法排查技巧,帮助工程师快速定位和解决CANoe环境下的各类硬件识别问题。

weixin_29269441的博客 255

Codeforces Round #659 (Div. 2) C. String Transformation 1(字符串,思维)

题目链接 题意: 给你两个长度相同的字符串a,b。你每次可以选择a中一些有相同字符的位置,把这些字符改成另一个大于他的字符。问至少要经过多少次修改,才能使a变成b。 思路: 我们只需要找a中与b不同的字母是否小于b中的字母并且记录是哪一个字母即可。 代码: #include<bits/stdc++.h> using namespace std; #define int long long #define IOS ios::sync_with_stdio(false);cin.tie(0);cou

ACkingdom的博客 206

BAT031:按列表名单将路径a下的文件夹批量剪切到路径b

摘要:按列表名单将路径a下的文件夹批量剪切到路径b。

qq_31762031的博客 1219

2024年03月CCF-GESP编程能力等级认证Python编程五级真题解析

下面流程图在yr输入2024时,可以判定yr代表闰年,并输出 2月是29天 ,则图中菱形框中应该填入( )。 A. (yr % 400 == 0) or (yr % 4 == 0) B. ( yr % 400 == 0) or (yr % 4 == 0 and yr %100 != 0) C. ( yr % 400 == 0) and ( yr % 4 == 0) D. (yr % 400 == 0) and (yr % 4 == 0 and yr % 100 != 0)

人生就是一个不断学习的过程 746

codeforces 1092C Prefixes and Suffixes【字符串+思维】

题目链接:点这里 题意:这题意我读错了三个小时...最后到网上找题解的时候才发现读错了QAQ暴击 题意是判断给你的2*n-2个字符串是前缀还是后缀,不是判断这个字符串的内容...我真的欲哭无泪,理解能力太菜了 思路:将两个n-1长的字符串取出,先判断第一个取出的字符串和给出的字符串前缀的匹配程度。如果匹配程度大于半数,则这个为所需字符串-1,否则就是另外一个。同时要注意回文串的情况,所以开了...

okimaru的博客 281

目标检测: yolo26在RK3588上部署

YOLO26发布:端到端目标检测新突破 摘要:Ultralytics最新发布的YOLO26算法采用原生端到端设计,无需NMS后处理,显著提升推理效率。该模型基于三大核心原则: 简洁性:消除NMS步骤,实现直接预测 部署效率:简化集成流程,降低延迟 训练创新:引入MuSGD混合优化器,加速收敛 部署教程显示,YOLO26可适配RK3588等边缘设备,通过ONNX转换和RKNN工具链实现高效部署。其创新架构特别优化了分割、姿态估计等专业任务,标志着目标检测技术的重要革新。 (字数:149)

qianxun 1445

Codeforces 1092C Prefixes and Suffixes【字符串+思维】

题目链接:点这里 题意:理解错了题意导致WA好几发,QAQ暴击 题意是判断给你的2*n-2个字符串是前缀还是后缀,不是判断这个字符串的内容...我真的欲哭无泪,理解能力太菜了 思路:将两个n-1长的字符串取出,先判断第一个取出的字符串和给出的字符串前缀的匹配程度。如果匹配程度大于半数,则这个为所需字符串-1,否则就是另外一个。同时要注意回文串的情况,所以开了一个cnt数组进行标记,其中p和s的数...

橘嘉禾 115

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Prefixes and Suffixes CodeForces - 1092C (暴力)

题目链接 题意:有一个长度为n的字符串 (1<=n<=100) ,现在不按顺序给出它的n-1个前缀和n-1个后缀一共2n-2个字符串,请判断每个字符串是前缀或后缀。 思路:这题想复杂了,一直没搞出来,最终看了别人题解才知道直接暴力枚举出可能的原串(一共8种可能),每种都判断一下就可以… #include<bits/stdc++.h> using namespace std; const int maxn=500; int n; map<string,int> mp; st

矮纸斜行闲作草 227

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

codeforces contest 1092 C. Prefixes and Suffixes---回文串

题目链接:https://codeforces.com/contest/1092/problem/C 题意:存在一个长度为n的字符串,现在给出其所有长度(1~n-1)的前缀和后缀,对于每一个给出的字符串,判断其是前缀还是后缀。 题解:由两个长度为n-1的字符串就可确定整个字符串的内容,设两个长度为n-1的字符串分别是t1、t2,if(t1.substr(1, n-1) == t2.substr...

weixin_41597684的博客 245

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

codeforces 1092C-Prefixes and Suffixes

Ivan wants to play a game with you. He picked some string ssnn You don't know this string. Ivan has informed you about all its improper prefixes and suffixes (i.e. prefixes and suffixes of lengths fr...

zsnowwolfy的博客 357

Codeforces Round #527 (Div. 3) C. Prefixes and Suffixes (暴力检验)

题目链接:https://codeforces.com/problemset/problem/1092/C 题目大意: Ivan小鬼想和你玩游戏,他挑了一个长度为n的字符串s,但是他只给你这个串的所有前缀和后缀串(2*n - 2)个。现在他要你判断每个串到底是前缀还是后缀。 解题思路: 一开始我只根据长度为n-1的串造出了一个串(还有不是原串的可能?不得其解)检验了一遍,WA17,后来我暴力造出两...

CourierLo的博客 173

[cf] Codeforces Round #527 (Div. 3) C. Prefixes and Suffixes 字符串,前缀后缀,枚举

前言 tag:tag :tag:字符串 前缀,后缀 传送门 : 题意 给定一个nnn,表示未知串的长度 然后给定2∗n−22*n-22∗n−2组字符串,这些字符串可能是该未知串的前缀或者后缀 询问这些字符串是前缀还是后缀 数据范围 : n∈(1,00]n\in(1,00]n∈(1,00] 思路 因为数据范围很小,我们可以考虑暴力 首先枚举a[i]a[i]a[i],然后我们再枚举长度为n−a[i].size()n-a[i].size()n−a[i].size()的串 如果存在,我们就将其进行拼接,然后暴力ch

qq_34364611的博客 305

Codeforces Round #527 (Div. 3) C. Prefixes and Suffixes(枚举模拟)

题目链接:http://codeforces.com/contest/1092/problem/C 题意:现在有一个未知字符串,长度为nnn,现在给出它的所有前缀和后缀共2∗n−22*n-22∗n−2个字符串,但是给出的字符串你并不知道它是作为前缀还是后缀,你需要判断每一个给出的字符串是前缀还是后缀。 解题心得: 首先找出两个长度为n−1n-1n−1的字符串,他们作为最长前后缀可以根据这两个字符...

二营长的意大利炮友 135

C. Prefixes and Suffixes

链接 [https://codeforces.com/contest/1092/problem/C] 题意 给你某个字符串的长度n,再给你2*n-2个前缀或者后缀 让你判断那些是前缀那些是后缀 关键是1到n-1的都有两个 分析 只需分析长度为n-1的那两个谁是前缀,谁是后缀 代码 #include<bits/stdc++.h> using namespace std; string s...

weixin_30487701的博客 178

Codeforces Round #527 (Div. 3) CF1092C Prefixes and Suffixes

题目:Prefixes and Suffixes 思路: 可以知道原序列一定是由给出的最长的两个字符串拼接而成的,所以可以尝试把最长的两个字符串按两种相对位置拼接。 设一个数组b。 对于每种拼接方法—— 如果一个串可以放在前缀的位置而不能放在后缀的位置,就把b[i]设为1。 如果一个串可以放在后缀的位置而不能放在前缀的位置,就把b[i]设为2。 如果一个串可以放在前缀的位置也可以放在后缀的位置,...

iwi 455

C. Prefixes and Suffixes (string函数)

题目链接:https://codeforces.com/contest/1092/problem/C 题意:给你2*n-2的字符子串,每个子串要么是前缀,要么是后缀,让你从中猜出来。 题解:我们直接找最长的两个子串,显然由这两个能推出整个串。 #include&lt;cstdio&gt; #include&lt;algorithm&gt; #include&lt;cstring&gt; #...

Jiandong 615

Codeforces Round #527 (Div. 3) C. Prefixes and Suffixes(思维+模拟)

  题目链接:http://codeforces.com/contest/1092/problem/C        题意是有一个长度为n的字符串(并没有给出),然后给出了2*n-2个这个字符串的前缀和后缀子串,也就是长度为1的有两个,分别是字符串的前缀和后缀,长度为2的也有两个,也是一个为前缀一个为后缀,直到n-1的长度的前后缀子串,然后让判断当前子串是前缀还是后缀,要注意的是abc的长度为...

Charles_Zaqdt的博客 301

CodeForces Round #527 (Div3) C. Prefixes and Suffixes

http://codeforces.com/contest/1092/problem/C Ivan wants to play a game with you. He picked some stringssof lengthnnconsisting only of lowercase Latin letters. You don't know this string. Iv...

weixin_30315723的博客 116

Codeforces Round #527 (Div. 3) C. Prefixes and Suffixes(思维)

题目链接:http://codeforces.com/contest/1092/problem/C 题意:有一个长度为n的字符串(并没有给出),然后给出了2*n-2个这个字符串的前缀和后缀子串,也就是长度为1的有两个,分别是字符串的前缀和后缀,长度为2的也有两个,也是一个为前缀一个为后缀,直到n-1的长度的前后缀子串,然后让判断当前子串是前缀还是后缀(前缀输出P后缀输出S),要注意的是abcd的...

sugarbliss 462
上一篇: 排序总结——————数据结构
下一篇: 用 Python 给文件改名字——————Python
陶鸿杰
博客等级 码龄9年 93粉丝 298原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值