HDU 5918 Sequence I【暴力+剪枝】(2016中国大学生程序设计竞赛(长春)H题)
2017-03-02 21:18
411 查看
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5918
【中文题意】有两个序列,分别为序列a和序列b,序列a有n个元素,序列b 有m个元素,问你能找到几个q使得aq,aq+p,aq+2p,⋯,aq+(m−1)p正好为序列b。
【思路分析】直接暴力枚举就好了,然后利用已知条件优化一下,很水的题目,看到别人有的用KMP做,但是不会,所以只能用奇葩的方法了,只要过了就好了。
【AC代码】
【中文题意】有两个序列,分别为序列a和序列b,序列a有n个元素,序列b 有m个元素,问你能找到几个q使得aq,aq+p,aq+2p,⋯,aq+(m−1)p正好为序列b。
【思路分析】直接暴力枚举就好了,然后利用已知条件优化一下,很水的题目,看到别人有的用KMP做,但是不会,所以只能用奇葩的方法了,只要过了就好了。
【AC代码】
#include<cstdio> #include<cstring> #include<string> #include<cmath> #include<map> #include<queue> #include<algorithm> #include<stack> using namespace std; const int N=1e6+5; int a ,b ; int main() { int t,n,m,p,iCase=0; scanf("%d",&t); while(t--) { scanf("%d%d%d",&n,&m,&p); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } for(int i=1;i<=m;i++) { scanf("%d",&b[i]); } int re=0; for(int i=1;i<=n;i++) { if(a[i]==b[1]&&(i+(m-1)*p<=n)) { int flag=0; for(int j=2;j<=m;j++) { if(b[j]!=a[i+(j-1)*p]) { flag=1; break; } } if(flag==0) { re++; } } } printf("Case #%d: %d\n",++iCase,re); } return 0; }
相关文章推荐
- HDU 5918 Sequence I【KMP?】【2016中国大学生程序设计竞赛(长春)】
- HDU Sequence I 2016中国大学生程序设计竞赛(长春)-重现赛
- 【HDU 5914 Sequence I】+ 2016中国大学生程序设计竞赛(长春)-重现赛
- HDU 5914 Triangle 【构造】 (2016中国大学生程序设计竞赛(长春))
- HDU 5916 Harmonic Value Description 【构造】(2016中国大学生程序设计竞赛(长春))
- HDU 5916 Harmonic Value Description【思维构造题目】(2016中国大学生程序设计竞赛(长春)F题)
- HDU 5914 Triangle【找规律】【2016中国大学生程序设计竞赛(长春)】
- HDU 5918 Sequence I CCPC 长春 暴力求解
- HDU 5912 Fraction【模拟】(2016中国大学生程序设计竞赛(长春)B题)
- HDU 5912 【模拟,类连分数的计算】【2016中国大学生程序设计竞赛(长春)】
- HDU 5920 Ugly Problem 【模拟】 (2016中国大学生程序设计竞赛(长春))
- HDU 5912 Fraction 【模拟】 (2016中国大学生程序设计竞赛(长春))
- HDOJ 5918 Sequence I 【2016CCPC长春现场赛】KMP暴力
- hdu 5912 Fraction -2016中国大学生程序设计竞赛(长春)
- HDU 5914 Triangle【斐波那契思维】(2016中国大学生程序设计竞赛(长春)D题)
- HDU 5916 Harmonic Value Description 【构造】(2016中国大学生程序设计竞赛(长春))
- HDU Ugly Problem 2016中国大学生程序设计竞赛(长春)-重现赛
- HDU 5912 Fraction 模拟题 【2016中国大学生程序设计竞赛(长春)】
- HDU 5912 Fraction 【模拟】 (2016中国大学生程序设计竞赛(长春))
- HDU 5914 Triangle 【构造】 (2016中国大学生程序设计竞赛(长春))