UVA 12174 播放器,滑动窗口
来源:互联网 发布:阿里云 vpn 编辑:程序博客网 时间:2024/05/21 04:00
题目
一开始写ok数组的时候for前面一段,后面一段
都特殊处理,然后先是RTE,找了半天发现数组下标出现负的了
改了之后WA,
最后看了眼刘的代码
刘的处理方式是在前面加s个空的格子
然后穷举1到s能否做起点
贴代码
#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int N=2001000;int i,j,n,s,vis[N],a[N],ans,cnt;bool ok[N];bool check(int x){ for (j=x;j<=n+s;j+=s) if (!ok[j])return 0; return 1;}int main(){ //freopen("fuck.in","r",stdin); int T;scanf("%d",&T); for (;T--;){ scanf("%d%d",&s,&n); memset(a,-1,sizeof(a)); memset(ok,0,sizeof(ok)); memset(vis,0,sizeof(vis)); for (i=1;i<=n;i++)scanf("%d",&a[s+i]); cnt=0; for (i=1;i<=n+s;i++){ //i为起点 if (cnt==s) ok[i]=1; if (i<=s&&cnt==i-1)ok[i]=1;//left if (i>n+1&&cnt==n+s-i+1)ok[i]=1;//right if (a[i]!=-1&&--vis[a[i]]==0)cnt--; if (a[s+i]!=-1&&vis[a[s+i]]++==0)cnt++; } ans=0; //begin for (i=1;i<=s;i++) if(check(i))ans++; if (ans==n+1)ans=s; printf("%d\n",ans); } return 0;}
0 0
- UVA 12174 播放器,滑动窗口
- UVA - 12174 Shuffle 滑动窗口
- UVA 12171 Shuffle的播放记录(滑动窗口)
- UVa 12174 - Shuffle(滑动窗口)
- UVa 12174:Shuffle(滑动窗口)
- UVA - 12174 Shuffle 滑动窗口的应用。
- 滑动窗口,预处理(Shuffle,uva 12174)
- 【高效算法设计——滑动窗口】 UVa 12174 Shuffle
- [较难] UVa OJ 12174 Shuffle 滑动窗口
- UVA - 11572 Unique Snowflakes 滑动窗口
- UVa 11572(滑动窗口+set)
- UVA-11572Unique Snowflakes(滑动窗口)
- UVA - 11536 Smallest Sub-Array (滑动窗口)
- 【uva 11572】 唯一的雪花 滑动窗口
- UVA 11572 Unique Snowflakes (滑动窗口)
- uva 11536 尺取法 滑动窗口
- UVa 1210 - Sum of Consecutive Prime Numbers(滑动窗口)
- UVA - 1619 Feel Good(高效算法:滑动窗口)
- Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
- HDU 1045 Fire Net(二分图最大匹配)
- 安卓开发:AlertDialog类的使用【弹出对话框、进度条、输入框、单选框、复选框】
- git分支branch详解
- atitit.bsh BeanShell 的动态脚本使用java
- UVA 12174 播放器,滑动窗口
- 前端好难 -- 致即将开发移动 Web App 的新人们
- 为什么1个字节的取值范围是-128~127
- 关于Python中HTMLParser使用的一些小疑问
- Atitit.HTTP 代理原理及实现 正向代理与反向代理attilax总结
- Linux系统中的异常堆栈跟踪简单实现
- Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
- Atitit swt 4.3 4.4 4.5 新特性java attilax总结
- Linux下利用backtrace追踪函数调用堆栈以及定位段错误