2017 ACM-ICPC 亚洲区(青岛赛区)网络赛 1003

Posted Roni

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017 ACM-ICPC 亚洲区(青岛赛区)网络赛 1003相关的知识,希望对你有一定的参考价值。

技术分享
#include<iostream>
#include<cstdio>
#include<cmath>
#include<string>
#include<vector>
using namespace std;


typedef long long int LL;



int Sunday(string text, string pattern){
    int i = 0, j = 0, k;
    int m = pattern.size();

    if(pattern.size() <= 0 || text.size() <= 0)
        return -1;

    for(; i<text.size();) {
        if(text[i] != pattern[j]) {
            for(k=pattern.size() - 1; k>=0; k--) {
                if(pattern[k] == text[m])
                    break;
            }
            i = m-k;
            j = 0;
            m = i+pattern.size();
        }
        else {
            if(j == pattern.size()-1)
                return i-j;
            i++;
            j++;
        }

    }
    return -1;
}

vector<string> v;

int main()
{
    ios::sync_with_stdio(false);
    int T;
    cin>>T;
    while(T--)
    {
        int n;
        cin>>n;
        v.clear();
        string t,text;
        for(int i=0;i<n;i++)
        {
            cin>>t;
            if(text.length()<t.length())
                text=t;
            v.push_back(t);
        }
        int f=1;
        for(int i=0;i<n;i++)
        {
            if(Sunday(text,v[i])== -1)
            {
                f=0;
                break;
            }
        }
        if(f)
            cout<<text<<endl;
        else
            cout<<"No"<<endl;
    }
    return 0;
}
sunday算法

 

以上是关于2017 ACM-ICPC 亚洲区(青岛赛区)网络赛 1003的主要内容,如果未能解决你的问题,请参考以下文章

2017 ACM-ICPC 亚洲区(青岛赛区)网络赛 1010

2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛

2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 B题

2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 F. Islands

2017 ACM-ICPC 亚洲区(西安赛区)网络赛C. Sum脑洞题

2017 ACM-ICPC 亚洲区(西安赛区)网络赛