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的排列,然后就按这个排列顺序播放歌曲.播放完 ...
随机推荐
- 2017-2018-1 20179203《Linux内核原理与分析》第二周作业
攥写人:李鹏举 学号:20179203 ( 原创作品转载请注明出处) ( 学习课程:<Linux内核分析>MOOC课程http://mooc.study.163.com/course/US ...
- OSS阿里云文件上传 demo。
所需jar包: aliyun-openservices-1.2.3.jar jdom-1.1.jar commons-codec-1.4.jar commons-logging-1.1.1.jar g ...
- 寻找总和为n的连续子数列之算法分析
看到有这么道算法题在博客园讨论,算法eaglet和邀月都已经设计出来了,花了点时间读了下,学到点东西顺便记录下来吧. 题目是从1...n的数列中,找出总和为n的连续子数列. 这里先设好算法中需要用到的 ...
- nodejs调试:node-inspector
基于Chrome浏览器的调试器 既然我们可以通过V8的调试插件来调试,那是否也可以借用Chrome浏览器的JavaScript调试器来调试呢?node-inspector模块提供了这样一种可能.我们需 ...
- TVYJ1266:费解的开关
我对状态空间的理解:https://www.cnblogs.com/AKMer/p/9622590.html 题目传送门:http://www.joyoi.cn/problem/tyvj-1266 这 ...
- Poj 2350 Above Average(精度控制)
一.Description It is said that 90% of frosh expect to be above average in their class. You are to pro ...
- 一 Optional
从Java8 引入的一个很有趣的特性是Optional类.Optional类主要解决的问题是臭名昭著的空指针异常(NullPointerException). 一: 创建Optional对象: ...
- Python-requests取消SSL验证的警告InsecureRequestWarning解决办法
使用requests模块请求一个证书无效的网站的话会直接报错 可以设置verify参数为False解决这个问题 # -*- coding:utf-8 -*- __author__ = "Mu ...
- python unittest之断言及示例
python unintest单元测试框架提供了一整套内置的断言方法. 如果断言失败,则抛出一个AssertionError,并标识该测试为失败状态 如果异常,则当做错误来处理 注意:以上两种方式的区 ...
- docker出现错误 could not read CA certificate
1. 问题描述 $ docker login # 无法正常使用 其他一堆命令,显示验证失败之类的问题 2. 解决方案 $ unset DOCKER_TLS_VERIFY $ unset DOCKER_ ...