• [CF798B] Mike and strings(暴力)


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

    题意:n个字符串,第一个字符可以放到最后,问最少移动步骤。

    直接暴力O(n*n*len*len)。

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 const int maxn = 55;
     5 const int inf = 0x7f7f7f7f;
     6 int n;
     7 string s[maxn];
     8 
     9 int main() {
    10     // freopen("in", "r", stdin);
    11     while(~scanf("%d", &n)) {
    12         int ret = inf;
    13         for(int i = 0; i < n; i++) cin >> s[i];
    14         int len = s[0].length();
    15         for(int i = 0; i < n; i++) {
    16             int tmp = 0;
    17             bool exflag = 0;
    18             for(int j = 0; j < n; j++) {
    19                 if(i == j) continue;
    20                 bool ok = 0;
    21                 for(int st = 0; st < len; st++) {
    22                     string t = "";
    23                     for(int k = 0; k < len; k++) t += s[j][(st+k)%len];
    24                     if(t == s[i]) {
    25                         ok = 1;
    26                         tmp += st;
    27                         break;
    28                     }
    29                 }
    30                 if(!ok) exflag = 1;
    31             }
    32             if(exflag) continue;
    33             ret = min(ret, tmp);
    34         }
    35         printf("%d
    ", ret == inf ? -1 : ret);
    36     }
    37     return 0;
    38 }
  • 相关阅读:
    A bon chat, bon rat
    获取信息mysql
    Lua笔记3 表达式
    libevent2编译
    opencv环境搭建
    bash console
    Unix Notes.
    ubuntu vsftpd
    axis2客户端代码生成
    IDEA 快捷键
  • 原文地址:https://www.cnblogs.com/kirai/p/6867419.html
Copyright © 2020-2023  润新知