zoukankan      html  css  js  c++  java
  • 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长度的字符串拼接,判断该字符串是否符合要求,能作为未知字符串。符合的话,直接输出答案。

     1 #include <set>
     2 #include <map>
     3 #include <queue>
     4 #include <deque>
     5 #include <stack>
     6 #include <cmath>
     7 #include <cstdio>
     8 #include <vector>
     9 #include <string>
    10 #include <cstring>
    11 #include <fstream>
    12 #include <iostream>
    13 #include <algorithm>
    14 using namespace std;
    15 
    16 #define eps 1e-8
    17 #define pb push_back
    18 #define PI acos(-1.0)
    19 #define INF 0x3f3f3f3f
    20 #define clr(a,b) memset(a,b,sizeof(a)
    21 #define FAST_IO ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
    22 
    23 typedef long long ll;
    24 typedef unsigned long long ull;
    25 int n,m;
    26 string str[234];
    27 map <string,int> M;
    28 
    29 void solve(string s){
    30     for(int i=1;i<=m;i++){
    31         bool ok=0;
    32         int sz=str[i].size();
    33         if(s.substr(0,sz)==str[i]) ok=1;
    34         if(s.substr(n-sz)==str[i]) ok=1;
    35         if(!ok) return ;
    36     }
    37     for(int i=1;i<=m;i++){
    38         int sz=str[i].size();
    39         if(s.substr(0,sz)==str[i]&&s.substr(n-sz)==str[i]){
    40             if(M[str[i]]) cout<<"S",M[str[i]]=0;
    41             else cout<<"P",M[str[i]]=1;
    42         }
    43         else if(s.substr(n-sz)==str[i]) cout<<"S";
    44         else if(s.substr(0,sz)==str[i]) cout<<"P";
    45     }
    46     cout<<endl;
    47     exit(0);
    48 }
    49 
    50 int main(){
    51     FAST_IO;
    52     cin>>n;
    53     m=2*n-2;
    54     for(int i=1;i<=m;i++) cin>>str[i];
    55     for(int i=1;i<=m;i++){
    56         for(int j=1;j<=m;j++){
    57             if(str[i].size()==n-1&&str[j].size()==1)
    58             solve(str[i]+str[j]);
    59         }
    60     }
    61     return 0;
    62 }
    View Code
  • 相关阅读:
    Codeforces Round #604 (Div. 2) E. Beautiful Mirrors 题解 组合数学
    洛谷P1002 过河卒 题解 动态规划
    python 查看数据类型
    python 输出小技巧
    python 基础定义变量
    python 关键字
    flask restful 反查询
    Please edit configuration/connection/logging settings in '/home/mac126/Desktop/13/test3-1/migrations/alembic.ini' before proceeding.
    KeyError: 'migrate'错误解决办法
    flask 的简单拆分升级版2
  • 原文地址:https://www.cnblogs.com/pavtlly/p/10199019.html
Copyright © 2011-2022 走看看