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的排列,然后就按这个排列顺序播放歌曲.播放完 ...
随机推荐
- @@cursor_rows变量解析
刚刚看了@@curosr_rows这个全局变量,发现这个变量挺有意思.要懂得这个变量的意义,基本上牵扯到cursor一些比较容易忽视的内容. @@cursor_rows是用来记录当前游标的数量,也就从 ...
- windows 2013 datacenter 安装sql server2008 r2兼容性
add-windowsfeature RSAT-Clustering-AutomationServer
- sql split函数
--DROP FUNCTION F_SQLSERVER_SPLIT GO CREATE FUNCTION F_SQLSERVER_SPLIT(@Long_str varchar(8000),@spli ...
- hdp 集群问题解决记录
2019-04-23 14:16:21,769 WARN namenode.FSImage (EditLogFileInputStream.java:scanEditLog(359)) - Caugh ...
- vc++ 访问php webService
之前做了一个VC++访问c#制作的WebService,没有问题,接着我又做了一个VC++访问php制作的WebService ,结果老是出现Client错误.这个php WebService是用Ze ...
- Maven(6)-POM
to be continued.
- HTML DOM setTimeout() 方法
转自:http://www.w3school.com.cn/jsref/met_win_settimeout.asp 1.setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. &l ...
- docker里安装ubuntu
使用 Ubuntu 官方镜像 Ubuntu 相关的镜像有很多,这里使用 -s 10 参数,只搜索那些被收藏 10 次以上的镜像 $ docker search -s 10 ubuntu NAME DE ...
- neon eclipse tomcat发布项目乱码
解决方法如图
- NetCore 学习笔记(DI 实例生命周期)
Transient: 每一次GetService都会创建一个新的实例 Scoped: 在同一个Scope内只初始化一个实例,同一个请求内只会被创建一次 Singleton :整个应用程序生命周期 ...