我是靠谱客的博主 热心小甜瓜,这篇文章主要介绍HDU Sequence I 2016中国大学生程序设计竞赛(长春)-重现赛,现在分享给大家,希望可以做个参考。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Sequence I Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 0 Accepted Submission(s): 0 Problem Description Mr. Frog has two sequences a1,a2,⋯,an and b1,b2,⋯,bm and a number p. He wants to know the number of positions q such that sequence b1,b2,⋯,bm is exactly the sequence aq,aq+p,aq+2p,⋯,aq+(m−1)p where q+(m−1)p≤n and q≥1. Input The first line contains only one integer T≤100, which indicates the number of test cases. Each test case contains three lines. The first line contains three space-separated integers 1≤n≤106,1≤m≤106 and 1≤p≤106. The second line contains n integers a1,a2,⋯,an(1≤ai≤109). the third line contains m integers b1,b2,⋯,bm(1≤bi≤109). Output For each test case, output one line “Case #x: y”, where x is the case number (starting from 1) and y is the number of valid q’s. Sample Input 2 6 3 1 1 2 3 1 2 3 1 2 3 6 3 2 1 3 2 2 3 1 1 2 3 Sample Output Case #1: 2 Case #2: 1

水题

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include<iostream> #include<stdlib.h> #include<stdio.h> #include<string> #include<vector> #include<deque> #include<queue> #include<algorithm> #include<set> #include<map> #include<stack> #include<time.h> #include<math.h> #include<list> #include<cstring> #include<fstream> //#include<memory.h> using namespace std; #define ll long long #define ull unsigned long long #define pii pair<int,int> #define INF 1000000007 #define pll pair<ll,ll> #define pid pair<int,double> //#define CHECK_TIME const int N=1e6+7; int a[N],b[N]; bool check(int n,int m,int p,int q){ for(int i=0;i<m;++i) if(b[i+1]!=a[q+i*p]) return false; return true; } int slove(int n,int m,int p){ int ans=0; for(int i=1;;++i){ if(i+(m-1)*p>n) break; ans+=check(n,m,p,i); } return ans; } int main() { //freopen("/home/lu/文档/r.txt","r",stdin); //freopen("/home/lu/文档/w.txt","w",stdout); int T,t,n,m,p; scanf("%d",&T); for(int t=1;t<=T;++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); printf("Case #%d: %dn",t,slove(n,m,p)); } return 0; }

最后

以上就是热心小甜瓜最近收集整理的关于HDU Sequence I 2016中国大学生程序设计竞赛(长春)-重现赛的全部内容,更多相关HDU内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(83)

评论列表共有 0 条评论

立即
投稿
返回
顶部