hihocoder 1829(2018 北京网络赛B

一共只有十组字符串+每个字符串<=8 可以想到暴力跑跑(大雾)

玄学枚举 不宜模仿

#include <bits/stdc++.h>
#include <cstdio>
#include <cstdlib>
using namespace std;

int cmp(string a,string b)
{
    if(a.length()==b.length()) return a<b;
    return a.length()>b.length();
}
int main()
{
    int n;
    string st,sr;
    while(~scanf("%d",&n))
    {
        vector <string> c;
        map <string,int> mp;
        for(int t = 0;t <n ;t ++)
        {
            cin>>sr;
            st=sr.substr(1,sr.size()-1)+sr;
            map <string,int> mmp;
            int len = st.size(),pows = 1;
            for(int i = 0;i < len;i++) pows*=2;
            for(int i = 1;i <pows;i++)
            {
                int num[20]={0};
                int temp = i,cnt = 0;
                string tempp;
                while(temp)
                {
                    if(temp%2)
                        num[cnt]++;
                    cnt++;
                    temp/=2;
                }
                for(int j = cnt-1;j>=0&&cnt-j<=sr.size();j--)
                {
                    if(num[j])
                    {
                        int ttt = len-j-1;
                        tempp+=st.substr(ttt,1);
                        mmp[tempp]++;
                        if(mmp[tempp]<=1&&tempp.size()>0)
                            mp[tempp]++;
                    }
                }
            }
        }
        int flag = 0;
        for(auto &f:mp)
        {
            if(f.second == n)
            {
                c.push_back(f.first);
                flag = 1;
            }

        }
        sort(c.begin(),c.end(),cmp);
        if(flag ) cout<<c[0]<<endl;
        else printf("0\n");
    }
    return 0;
}

用mp存子串,mmp筛重,c(vector)满足情况的字符子串,cmp来使子串长度最长= =

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值