zoukankan      html  css  js  c++  java
  • [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 }
  • 相关阅读:
    C#学习-多态
    C#学习-子类的初始化顺序
    C#学习-面向对象
    Python数据类型知识点全解
    python 复制图片到剪贴板
    pyperclip
    pyautogui
    多线程代码案例
    常用正则表达式最强整理(速查手册)
    python os
  • 原文地址:https://www.cnblogs.com/kirai/p/6867419.html
Copyright © 2011-2022 走看看