码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces Round #659 (Div. 2) A.Common Prefixes

时间:2020-07-26 00:02:58      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:长度   输出   common   turn   ret   div   n+1   using   ace   

地址:http://codeforces.com/contest/1384/problem/A

题意:

输出n+1个字符串,si和si+1的公共前缀长为ai

解析:

一个一个补的话,会很麻烦。

看范围:ai<=50,就是说前缀最长为50,那么考虑把所有字符串长度都构造为长度>50,那么对于每一个ai,只需要修改s[a[i]]就可以了。

26个字符,两次就是52,够用,以此做为s1

#include<iostream>
#include<cstring>
#include<string.h>
#include<cmath>
#include<map>
using namespace std;
typedef long long ll;
const int maxn=1e2+10;
const int maxn2=3e6;
const int mod=1e9+7;
char s1[maxn],s2[maxn];
int a[maxn];
int b[2*maxn2];
int qk(ll a, ll b,ll c)
{
    ll ans=1;
    a=a%c;
    while(b)
    {
        if(b%2==1)
            ans=(ans*a)%c;
        b=b/2;
        a=(a*a)%c;
    }
    return  ans;
}
int main()
{
      int t;
      cin>>t;
      while(t--)
      {
          int n;
          cin>>n;
          for(int i=1;i<=n;i++)
              cin>>a[i];
          string s;
        char ch=a;
        for(int i=1;i<=26;i++)
        {
            s+=ch;
            ch++;    
        }          
        cout<<s<<s<<endl;
        string md=s+s;
        for(int i=1;i<=n;i++)
        {
            char c=md[a[i]];
            
            if(c==z)
                c=a;
            else
                c++;
            md[a[i]]=c;
            cout<<md<<endl;
        }    
    }
}

 

Codeforces Round #659 (Div. 2) A.Common Prefixes

标签:长度   输出   common   turn   ret   div   n+1   using   ace   

原文地址:https://www.cnblogs.com/liyexin/p/13376107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!