FZU 1481 环串
来源:互联网 发布:马哥2014linux视频 编辑:程序博客网 时间:2024/06/03 21:49
G - 环串
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uDescription
环串是一个首尾相接的串。例如,串abcabcxyzaxcaxcaxc 与串cabcxyzaxcaxcaxcab和xcaxcaxcabcabcxyza 是相同的环串。同一个环串可有多种不同的表示。
请编写一个程序计算在一个环串列表中有多少环串与一个已知的环串是表示相同的串。
Input
本题有多组输入数据,你必须处理到EOF为止
每组输入数据第一行有1个字符串。第二行有一个整数n(1<=n<=5000)。接下来n行每行有1个字符串。所有的字符串都是由不超过200个的小写字母组成
Output
输出与每组数据第一行字符串相同的环串个数。每组输入数据输出占一行
Sample Input
abcabcxyzaxcaxcaxc3xcaxcaxcabcabcxyzacabcxyzaxcaxcaxcabcabcxyzaxcaxcaxca
Sample Output
2解题报告:暴力法一个一个字符进行比较就行。 注意一个循环取字符串 s[i%len],len为字符串s的长度code:#include<iostream>#include<algorithm>#include<stdio.h>#include<queue>#include<math.h>#include<string.h>#include<stdlib.h>using namespace std;typedef long long ll;int main(){ // freopen("input.txt","r",stdin); int n; char s[205]; while(~scanf("%s",s)){ int len=strlen(s),sum=0; scanf("%d",&n); char ch[205]; for(int i=0;i<n;i++){ scanf("%s",ch); int m=strlen(ch); if(len!=m) continue; for(int i=0;i<len;i++){ int j=0,k=i; while(j<m&&s[k%len]==ch[j]){ k++; j++; } if(j==m){ sum++; break; } } } printf("%d\n",sum); } return 0;}
0 0
- FZU 1481 环串
- FZU 1481 KMP
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- 2016.8.15C组模拟赛题解
- HDOJ 3923 Invoker (Polya+乘法逆元)
- JavaScript 使用正则表达式进行表单验证的示例代码
- BLE之旅-gatt profile(一)
- opencv-3.0.0在Ubuntu14.04下的配置与安装
- FZU 1481 环串
- Makefile分析一
- OpenGL 矩阵变换(讲的太好了~!)
- 完全背包
- GreenDao 3.X之基本使用
- UVA 10870 递推关系 矩阵快速幂
- jquery插件开发全指南
- cpufreq 之powersave和performance governer的实现
- 使用Jpype在python中调用Java程序