感觉自己好咸鱼呀……B题写了这么久,虽然可以算作1A(忽略一次少include一个头文件的CE)……

思想很简单,每次选定一个字符串作为目标字符串,然后把其他所有字符串都当做测试字符串,计算出总共需要的步数,再在这些计算出的步数中找到最小的那个就是答案。

 #include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
char str[][];
int n;
bool is_equal(char sta[],char tes[],int len)//判断两个字符串是否相等
{
for(int i=;i<len;i++)
{
if(sta[i]!=tes[i]) return false;
}
return true;
}
int step(int sta,int tes)//计算从tes测试字符串到sta目标字符串需要多少步
{
int cnt=;
int len=strlen(str[sta]);
char test[*len+];//新建一个test字符串
for(int i=;i<len;i++) test[i]=str[tes][i];
for(int i=;i<len;i++) test[len+i]=str[tes][i];
test[*len]='\0';
//以上三行是做如此的工作:源字符串:“abc”,test字符串:“abcabc”,这样可以方便后续计算步数
while(cnt<len)//计算出从tes测试字符串到sta目标字符串需要cnt步
{
if(is_equal(str[sta],test+cnt,len)) break;
else cnt++;
}
if(cnt>=len) return -;//如果跑完一圈依然没有能够找到某次和目标字符串相同,那么就代表ans=-1;
return cnt;
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%s",str[i]);
int ans=,flag=;
for(int i=;i<=n;i++)//枚举目标字符串
{
int cnt=;
for(int j=;j<=n;j++)//枚举测试字符串
{
if(i!=j)
{
int tmp=step(i,j);
if(tmp==-){
printf("-1\n");
return ;
}
else cnt+=tmp;
}
}
if(cnt<ans) ans=cnt;
}
printf("%d\n",ans);
}

codeforces 798B - Mike and strings的更多相关文章

  1. Mike and strings 798B

    B. Mike and strings time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  2. Codeforces Round #410 (Div. 2) B. Mike and strings

    B. Mike and strings time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  3. CF410div2 B. Mike and strings

    /* CF410div2 B. Mike and strings http://codeforces.com/contest/798/problem/B 字符串 暴力 题意:给你n个串,每次操作可以将 ...

  4. hdu4135-Co-prime & Codeforces 547C Mike and Foam (容斥原理)

    hdu4135 求[L,R]范围内与N互质的数的个数. 分别求[1,L]和[1,R]和n互质的个数,求差. 利用容斥原理求解. 二进制枚举每一种质数的组合,奇加偶减. #include <bit ...

  5. Codeforces 385B Bear and Strings

    题目链接:Codeforces 385B Bear and Strings 记录下每一个bear的起始位置和终止位置,然后扫一遍记录下来的结构体数组,过程中用一个变量记录上一个扫过的位置,用来去重. ...

  6. codeforces 547E Mike and Friends

    codeforces 547E Mike and Friends 题意 题解 代码 #include<bits/stdc++.h> using namespace std; #define ...

  7. Codeforces 482C Game with Strings(dp+概率)

    题目链接:Codeforces 482C Game with Strings 题目大意:给定N个字符串,如今从中选定一个字符串为答案串,你不知道答案串是哪个.可是能够通过询问来确定, 每次询问一个位置 ...

  8. codeforces 689 Mike and Shortcuts(最短路)

    codeforces 689 Mike and Shortcuts(最短路) 原题 任意两点的距离是序号差,那么相邻点之间建边即可,同时加上题目提供的边 跑一遍dijkstra可得1点到每个点的最短路 ...

  9. 【codeforces 798B】Mike and strings

    [题目链接]:http://codeforces.com/contest/798/problem/B [题意] 给你n个字符串; 每次操作,你可以把字符串的每个元素整体左移(最左边那个字符跑到最后面去 ...

随机推荐

  1. http 返回码 405 解决方案之一

    今天做网络请求数据的时候遇到返回码405,当时就傻了~~ 故事是这样的-- 我用post请求访问一个url,服务端数据是一个json的txt文件,理论上直接访问,返回json,然后解析就没事了,可是今 ...

  2. photoshop制作简单ico图标

    新建16 * 16透明画布 字体20px 半径4px

  3. ios开发之 -- stringByAddingPercentEscapesUsingEncoding方法被替换 iOS9.0

    最近在项目中,发现之前的一个方法已经不被建议使用了. 该方法名即题目中提到的: stringByAddingPercentEscapesUsingEncoding,这个方法是用来进行转码的,即将汉字转 ...

  4. php前端传过来的json数据丢失 (max_input_vars)

    开发向我反馈,前端业务页面提交数据用js将要传输的数据用json dump后,发给服务器,服务器在loads后发现数据是不全的. 这个问题困扰开发人员和运维人员.首先调整php.ini文件的上传文件数 ...

  5. PHP代码审计笔记--任意文件下载漏洞

    在文件下载操作中,文件名及路径由客户端传入的参数控制,并且未进行有效的过滤,导致用户可恶意下载任意文件.  0x01 客户端下载 常见于系统中存在文件(附件/文档等资源)下载的地方. 漏洞示例代码: ...

  6. HTML 样式

    style 属性用于改变 HTML 元素的样式,常见的样式如下: 定义字体颜色:style="color:red"定义字体大小:style="font-size:20px ...

  7. Splash js_enabled 属性

    js_enabled属性是 Splash 的 JavaScript 执行开关,可以将其配置为 true 或 false 来控制是否执行 JavaScript 代码,默认为 true .例如,这里禁止执 ...

  8. Splash 对象属性

    args js_enabled resource_timeout images_enabled plugins_enabled scroll_position

  9. U3D优化

    容易忽略的美术资源的优化: 优化的美术制作真是一种感觉和经验的积累,能看出制作水平的不是做的效果多么犀利,而是得看制作的效果与对机器的要求等的性价比. 关于合并:  100个三角形的MESH,在渲染时 ...

  10. Qt编写activex控件在网页中运行

    qt能够实现的东西非常多,还可以写activex控件直接在网页中运行.参照qtdemo下的例子即可. 方案一:可执行文件下载:https://pan.baidu.com/s/14ge9ix2Ny0x7 ...