Uva12174
#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的更多相关文章
- 8-15 Shuffle uva12174
题意: 你正在使用的音乐播放器有一个所谓的乱序功能,即随机打乱歌曲的播放顺序.假设一共有s首歌,则一开始会给这s首歌随机排序,全部播放完毕后再重新随机排序.继续播放,依此类推.注意,当s首歌播放完毕之 ...
- Uva12174 Shuffle(滑动窗口)
$play[i]$表示以$i$这个点结束的连续$s$个播放记录是否是无重复的,这样最后只需要枚举可能的播放时间,然后检查对应的播放区间是否是单独的就可以了.特殊情况是,出现的所有播放记录无重复,且长度 ...
- uva12174 滑动窗口+预处理
注意理解题意,不是排列种类,而是下一个排序出现的时间滑动窗口,具体见代码,写了很多注释(紫书的思路1理解有点麻烦...)注:可以画一个轴来方便理解 #include<iostream> # ...
- UVa 12174 Shuffle(滑动窗口)
https://vjudge.net/problem/UVA-12174 题意: 你在听音乐播放器,它采用随机播放形式.随机播放的原理时先随机产生一个1~n的排列,然后就按这个排列顺序播放歌曲.播放完 ...
随机推荐
- kudu安装以及kudu的坑
本文描述的是kudu在cloudera的安装. 首先cloudera 5.11.1版本尽管可以直接在add Services中看到kudu,但是其实并没有集成parcels,而且也不想kafka提示需 ...
- 洛谷【P1090】合并果子&&洛谷【P1334】瑞瑞的木板
浅谈堆:https://www.cnblogs.com/AKMer/p/10284629.html 合并果子题目传送门:https://www.luogu.org/problemnew/show/P1 ...
- Erlang generic standard behaviours -- summary
gen_server 相关的片段分析得也差不多了, 这篇作为一个简要的总结.这一系列相关的分析暂且告一段落(之后如有必要,还会回来的 ^^ ),下一个系列主要是以pool 相关, 包括但不仅限于开源项 ...
- Unreal引擎术语表
转自:http://www.cnblogs.com/hmxp8/archive/2012/02/10/2345274.html Unreal引擎术语表 转载自UDN: Actor - 一个可以放置在 ...
- WPF bmp和二进制转换
bmp转二进制: FileStream fs = File.OpenRead(filepath); //filepath文件路径 Byte[] tempBuff = new Byte[fs.Lengt ...
- j++与++j
(j++)+(++j)+(++j) 核心部分汇编代码 执行顺序j原始值为5,存放在栈的ebp-4中;q无初始值,存放在栈的ebp-8中先执行一次j自增赋值++j ;j=6执行第一个加法运算;值存放在C ...
- spring 4.0 注解数据验证1
通常情况下,数据验证都分为前台验证,后台验证.并且前台JS验证是肯定有的,那么其实验证的错误信息根本不必通过后台传过去,哪怕就是想国际化,前台JS也能够胜任. 如果前台验证足够了,那么如果还有不正确的 ...
- Static与Const的区别
static static局部变量 将一个变量声明为函数的局部变量,那么这个局部变量在函数执行完成之后不会被释放,而是继续保留在内存中 static 全局变量 表示一个变量在当前文件的全局内可访问 s ...
- \阶段4-独挡一面\项目-基于视频压缩的实时监控系统\Sprint2-采集端图像采集子系统设计
1.在编写程序前有一个流程,思维导图: 初始化:包括初始化摄像头:注册事件到epoll 然后是开始启动采集:一旦开始采集我们的摄像头就会有数据了,它会触发事件处理函数:我们在这里的处理是保存这个图像: ...
- 【转】ANT安装、环境变量配置及验证
http://www.cnblogs.com/yuzhongwusan/archive/2013/03/26/2982411.html Posted on 2013-03-26 14:01 yuzho ...