HDOJ 4749 Parade Show

时间:2023-03-10 07:20:07
HDOJ 4749  Parade Show

说实在的在比赛时看错了题意,一直对最后一段的描述不是很清楚。闲话少说;

题意:给一个主串,再一个副串,问主串中有多少个子串和副串的的规律相同,即相邻的相等大于小于,用过的就不能再用了。

 #include <stdio.h>
#include <string.h>
#include <stdlib.h>
int A[],B[];
int find(int i,int m)
{
int j;
for(j = ;j <= m - ;j ++)
{
if ( ( A[i] == A[i + ] && B[j] == B[j + ] ) || (A[i] < A[i + ] && B[j] < B[j + ] ) ||(A[i] > A[i + ] && B[j] > B[j + ] )
)
i ++;
else
return ;
}
return ;
}
int main()
{
int n,m,k,i,j,ans;
while(scanf("%d %d %d",&n,&m,&k)!=EOF)
{
ans = ;
for(i = ;i <= n;i ++)
scanf("%d",&A[i]);
for(i = ;i <= m;i ++)
scanf("%d",&B[i]);
for(i = ;i <= n - m + ; )
{
if( find(i,m) )
{
ans ++;
i = i + m;
}
else i ++;//敲的时候忘了,后来加上了。
}
printf("%d\n",ans);
}
return ;
}