首页 > 学院 > 开发设计 > 正文

Shuffle的播放记录Shuffle

2019-11-06 06:28:46
字体:
来源:转载
供稿:网友
//紫书P247//UVA12174Shuffle//Serene#include<algorithm>#include<iostream>#include<cstring>#include<cstdlib>#include<cstdio>#include<cmath>using namespace std;const int maxn=100000+10;int T,s,n,a[maxn],visnum[maxn],l=0;bool visans[maxn];int aa;char c;int read() {    aa=0;c=getchar();    while(c<'0'||c>'9') c=getchar();    while(c>='0'&&c<='9') aa=aa*10+c-'0',c=getchar();    return aa;}int main() {    T=read();int ans,now=0;    while(T--) {        memset(visnum,0,sizeof(visnum));        memset(visans,0,sizeof(visans));        s=read();n=read();ans=s;now=0;l=0;        for(int i=1;i<=n+s-1;++i) {            if(i-l>s) {                visnum[a[++l]]--;                if(visnum[a[l]]==1) now--;            }            if(i<=n){                a[i]=read(); visnum[a[i]]++;                if(visnum[a[i]]==2) now++;            }            if(now&&!visans[l%s]) {                visans[l%s]=1;ans--;            }            if(now&&!visans[i%s]){                visans[i%s]=1;ans--;            }        }        cout<<ans<<"/n";    }    return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表