每日一题冲刺大厂提高组第八天 栗酱的数列

简介: 大家好,我是泡泡,给大家带来每日一题的目的是为了更好的练习算法,我们的每日一题提高组是为了有余力的同学准备的,让大家练到各种各样的题目,一年以后,蜕变成为一个不一样的自己!

今日题目:栗酱的数列


题目描述


栗酱有一个长度为n的数列A,一个长度为m的数列B,现在询问A中有多少个长度为m的连续子序列A',满足(a'1+b1)%k = (a'2+b2)%k = …… = (a'm + bm)%k。


输入描述:


第一行一个数T,表示有T组数据。


对于每组数据,


第一行三个整数,n, m, k。


第一行输入n个数, a1,a2,…,an, 表示A数列中的数,


第二行输入m个数, b1,b2,…,bm, 表示B数列中的数。


输出描述:


每一组数据输出一行,满足条件的连续子序列数量。


题目分析


题目难度:⭐️⭐️⭐️


题目涉及算法:kmp。


ps:有能力的小伙伴可以尝试优化自己的代码或者一题多解,这样能综合提升自己的算法能力


题解报告:


1.思路


这题考的是KMP,还是很明显的,大家根据题意来套板子就好了,什么?没有学过kmp?赶紧去学!


2.代码


#include<bits/stdc++.h>
using namespace std;
const int N = 200001;
int a[N],b[N];
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n,m,k;
        cin>>n>>m>>k;
        for(int i=0;i<n;i++)
        {
          cin>>a[i];
    }
        for(int i=0;i<m;i++)
        {
          cin>>b[i];
    }
        int sum=0;
        for(int i=0;i<=n-m;i++)
        {
            int z=0,flag=0;
            int num=(a[i]+b[z])%k;
            for(int j=i;j<i+m;j++)
            {
                if((a[j]+b[z])%k!=num)
                {
                    flag=1;
                    break;
                }
                z++;
            }
            if(!flag)
            {
        sum++;
          }
    }
        cout<<sum<<endl;
    }
    return 0;
}


目录
相关文章
|
7月前
|
C++
【洛谷 P1047】[NOIP2005 普及组] 校门外的树 题解(位集合)
**NOIP2005普及组问题:**给定长度为$l$的马路,上面等距种植着树,需移除位于建造地铁区域的树。输入包含马路长度和区域数,以及各区域起止点,输出移树后剩余树的数量。样例输入:$l=500$, $m=3$,输出:$298$。$20\%$数据无区域重合,$1 \leq l \leq 10^4$,$1 \leq m \leq 100$。解决方案利用位集合(bitset)表示树的状态,遍历区域将树设为0,最后统计1的数量。AC代码使用C++实现。
36 0
|
8月前
|
Java C语言
第十四届蓝桥杯集训——JavaC组第十四篇——嵌套循环
第十四届蓝桥杯集训——JavaC组第十四篇——嵌套循环
73 0
|
8月前
蓝桥备战--纪念品分组OJ532,贪心证明
蓝桥备战--纪念品分组OJ532,贪心证明
33 0
|
算法
每日一题冲刺大厂第十七天 逆序对
大家好,我是泡泡,给大家带来每日一题的目的是为了更好的练习算法,我们的每日一题为了让大家练到各种各样的题目,熟悉各种题型,一年以后,蜕变成为一个不一样的自己!
291 0
|
机器学习/深度学习 存储 测试技术
蓝桥杯冲刺-倒数第八天-省赛题
蓝桥杯冲刺-倒数第八天-省赛题
121 0
|
算法
【蓝桥杯集训·每日一题】AcWing 141. 周期
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 KMP算法
92 0
|
算法
【蓝桥杯集训·每日一题】AcWing 3768. 字符串删减
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 双指针
93 0
|
人工智能
【蓝桥杯集训·每日一题】AcWing 3956. 截断数组
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 一维前缀和
70 0
每日一练蓝桥杯C/C++B组~蛇形填数
每日一练蓝桥杯C/C++B组~蛇形填数
130 30
每日一练蓝桥杯C/C++B组~蛇形填数
|
安全 C语言
农民工学CSAPP题目解析-前篇题目解答以及答疑总结
农民工学CSAPP题目解析-前篇题目解答以及答疑总结
165 0
农民工学CSAPP题目解析-前篇题目解答以及答疑总结