#include <bits/stdc++.h>

 using namespace std;

 const int maxn = ;

 int t; 

 int s,n;

 int a[maxn+];

 int res[maxn+];

 int flag[maxn+];

 void init(){
memset(a, , sizeof(a));
memset(res, , sizeof(res));
memset(flag, , sizeof(flag));
} int main(){
//freopen("a.txt", "w", stdout);
scanf("%d",&t);
while(t--){
init();
scanf("%d%d",&s, &n);
for(int i = ; i <= n; ++i){
scanf("%d",&a[i]);
}
for(int i = ; i <= s; ++i){
a[i+n] = i + maxn/;
} int temp = s;
for(int i = ; i <= n+s-; ++i){
if(i <= s){ temp -= ;
flag[a[i]] += ; if(flag[a[i]] == ){
temp += ;
} else if(flag[a[i]] == ){
temp -= ;
}
if(temp == s){ res[i] = ;
}
} else { flag[a[i-s]] -= ; if(flag[a[i-s]] == ){
temp -= ;
} else if(flag[a[i-s]] == ){
temp += ;
} flag[a[i]] += ;
if(flag[a[i]] == ){
temp += ;
} else if(flag[a[i]] == ){
temp -= ;
} if(temp == s){ res[i%s] = res[i%s]&;
} else {
res[i%s] = ;
}
}
} int ans = ;
if(n <= s && res[n] == ){
ans = s;
} else {
for(int i = ; i <= s; ++i){
if(res[i] == ){
++ans;
}
}
}
printf("%d\n",ans); }
}

Uva12174的更多相关文章

  1. 8-15 Shuffle uva12174

    题意: 你正在使用的音乐播放器有一个所谓的乱序功能,即随机打乱歌曲的播放顺序.假设一共有s首歌,则一开始会给这s首歌随机排序,全部播放完毕后再重新随机排序.继续播放,依此类推.注意,当s首歌播放完毕之 ...

  2. Uva12174 Shuffle(滑动窗口)

    $play[i]$表示以$i$这个点结束的连续$s$个播放记录是否是无重复的,这样最后只需要枚举可能的播放时间,然后检查对应的播放区间是否是单独的就可以了.特殊情况是,出现的所有播放记录无重复,且长度 ...

  3. uva12174 滑动窗口+预处理

    注意理解题意,不是排列种类,而是下一个排序出现的时间滑动窗口,具体见代码,写了很多注释(紫书的思路1理解有点麻烦...)注:可以画一个轴来方便理解 #include<iostream> # ...

  4. UVa 12174 Shuffle(滑动窗口)

    https://vjudge.net/problem/UVA-12174 题意: 你在听音乐播放器,它采用随机播放形式.随机播放的原理时先随机产生一个1~n的排列,然后就按这个排列顺序播放歌曲.播放完 ...

随机推荐

  1. kudu安装以及kudu的坑

    本文描述的是kudu在cloudera的安装. 首先cloudera 5.11.1版本尽管可以直接在add Services中看到kudu,但是其实并没有集成parcels,而且也不想kafka提示需 ...

  2. UOJ #348 州区划分 —— 状压DP+子集卷积

    题目:http://uoj.ac/problem/348 一开始可以 3^n 子集DP,枚举一种状态的最后一个集合是什么来转移: 设 \( f[s] \) 表示 \( s \) 集合内的点都划分好了, ...

  3. Poj1159 Palindrome(动态规划DP求最大公共子序列LCS)

    一.Description A palindrome is a symmetrical string, that is, a string read identically from left to ...

  4. 解决启动SQL Server Management Studio 17时报Cannot find one of more components...的问题

    刚装好SSMS 17.1准备体验,弹出: 一番搜索,普遍办法都是安装VS2015独立shell.删除某个注册表项什么的,没用,首先这个shell我是装了的,然后也没有那个注册表项.我自己尝试过重装sh ...

  5. content-disposition attachment filename 在Firefox和IE中得到不同的结果

    在Firefox中需要把filename 用双引号包起来,才能得到想要的名字,不然如果含有空格,会丢掉空格后面的部分.而IE会把空格转为_,因此也需要HttpUtility.UrlPathEncode ...

  6. 问题:oracle ROW_NUMBER()over;结果: ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法

    ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法 ROW_NUMBER() OVER(partition by col1 order by col2) 表示根据col1分组, ...

  7. linux日常管理-rsync后台服务方式-2

    把本地的数据拷贝到远程 这里是个错误,read only.只允许读,不允许写. 改一下远程机器的配置文件 把read only改为no 拷贝到远程成功 tree一下远程机器的目录 ////////// ...

  8. free查看内存情况

    free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区. free [option]     -b:以Byte为单位显示内存使用情况:      -k:以KB为单位显 ...

  9. c# 创建缩略图

    /// <summary> /// 创建缩略图 /// </summary> /// <param name="srcFileName">< ...

  10. 5、bam格式转为bigwig格式

    1.Bam2bigwig(工具) https://www.researchgate.net/publication/301292288_Bam2bigwig_a_tool_to_convert_bam ...