zoukankan      html  css  js  c++  java
  • 【codeforces 798B】Mike and strings

    【题目链接】:http://codeforces.com/contest/798/problem/B

    【题意】

    给你n个字符串;
    每次操作,你可以把字符串的每个元素整体左移(最左边那个字符跑到最后面去了)
    问你最少经过多少次操作可以使得所有字符串都相同;

    【题解】

    枚举最后每个字符串都变成了哪一个字符串;
    然后每个字符串都模拟一下左移的过程;直到相等记录总的移动次数;
    或者左移超过了长度的次数;输出不可能能和目标串一样;
    记录最小的移动次数就好;

    【Number Of WA

    0

    【完整代码】

    #include <bits/stdc++.h>
    using namespace std;
    #define lson l,m,rt<<1
    #define rson m+1,r,rt<<1|1
    #define LL long long
    #define rep1(i,a,b) for (int i = a;i <= b;i++)
    #define rep2(i,a,b) for (int i = a;i >= b;i--)
    #define mp make_pair
    #define pb push_back
    #define fi first
    #define se second
    #define ms(x,y) memset(x,y,sizeof x)
    
    typedef pair<int,int> pii;
    typedef pair<LL,LL> pll;
    
    const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
    const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
    const double pi = acos(-1.0);
    const int N = 110;
    const int INF = 21e8;
    
    int n,ans=INF;
    string s[N],s1[N];
    
    int ok(string t)
    {
        rep1(i,1,n)
            s1[i]=s[i];
        int temp = 0,len = s1[1].size();
        rep1(i,1,n)
        {
            int cnt = 0;
            while (s1[i]!=t)
            {
                char t = s1[i][0];
                s1[i].erase(0,1);
                s1[i]+=t;
                cnt++;
                if (cnt>len+2) return INF;
            }
            temp+=cnt;
        }
        return temp;
    }
    
    int main()
    {
        //freopen("F:\rush.txt","r",stdin);
        ios::sync_with_stdio(false),cin.tie(0);//scanf,puts,printf�ͱ�����!
        cin >> n;
        rep1(i,1,n) cin >> s[i];
        rep1(i,1,n)
            {
                int ju = ok(s[i]);
                ans = min(ans,ju);
            }
        if (ans>=INF)
            cout <<-1<<endl,0;
        else
            cout << ans << endl;
        return 0;
    }
  • 相关阅读:
    HDU 1078 FatMouse and Cheese(DP)
    HDU 1160 FatMouse's Speed(DP)
    作业DAY019
    作业DAY018
    作业DAY017
    作业DAY016
    作业DAY015
    作业DAY014
    作业DAY013
    作业DAY012
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7626396.html
Copyright © 2011-2022 走看看