D. Inaccurate Subsequence Search

原题链接

题解

明确每个变量的意义

code

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a[200005];
int main()
{
    ll t;
    cin>>t;
    while(t--)
    {
        map<ll,ll> b;
//b[x]代表数组b中x的使用情况,大于0代表还有剩余,等于0代表刚好借满了或者数组b里不含有他,小于0代表有人在排队等着借,借用的时候如果还有剩余,连接数加一,剩余数减一;如果没有剩余,剩余数减一,代表在排队;归还时剩余数加一,如果剩余数大于0,代表数组b中有数空了出来,连接数减一;若剩余数仍然小于等于0代表还有人排队在借
        ll n,m,k;
        cin>>n>>m>>k;
        for(ll i=1;i<=n;i++) cin>>a[i];
        for(ll j=1;j<=m;j++)
        {
            ll x;
            cin>>x;
            b[x]++;
        }
        ll cnt=0,ans=0;
        for(ll i=1;i<=n;i++)
        {
            if(b.count(a[i]))
            {
                if(b[a[i]]>0) cnt++;
                b[a[i]]--;
            }
            if(i>=m)
            {
                if(cnt>=k) ans++;
                ll pre=a[i-m+1];
                if(b.count(pre))
                {
                    b[pre]++;
                    if(b[pre]>0) cnt--;
                }
            }
        }
        cout<<ans<<endl;
    }
    return 0;
}
posted @   纯粹的  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示