UVa 12174 Shuffle (滑动窗口)】的更多相关文章

这道题就是给你一n长序列, 然后把这个序列按顺序分成很多段, 每段长s(最前面可以小于s, 只有第一段的后半段, 最后面也同样, 只有最后一段的前半段), 然后要求是每一段里面没有重复的数, 问你有几种分法 实际上看到连续s个数, 就可以想到滑动窗口, 可以提前初始化所给序列的每一段里面有没有重复的数, 然后再枚举第一段的终点, 然后一段一段去判断是否全部都没有重复的数字, 如果所有段都是的话, 那么就符合题目要求, ans++ 有两个地方要注意 (1)初始化的问题.这个思路有点像扫描法, 判断…
https://vjudge.net/problem/UVA-12174 题意: 你在听音乐播放器,它采用随机播放形式.随机播放的原理时先随机产生一个1~n的排列,然后就按这个排列顺序播放歌曲.播放完这序列的所有歌曲以后,再次随机生成一个1-n的排列,再继续播放. 现在给你一个播放历史记录,这个历史记录是不完整的,以为它是开始记录时,已经有些歌曲播放过了而没有记录到. 现在给你一段从某个时刻开始的播放音乐的历史记录,以及播放器里一共有多少首歌. 问历史记录中第一首歌可能是某个随机列表中的第几首,…
题意:你正在使用的音乐播放器有一个所谓的乱序播放功能,即随机打乱歌曲的播放顺序.假设一共有s首歌, 则一开始会给这s首歌随机排序,全部播放完毕后再重新随机排序.继续播放,依次类推.注意,当s首歌播放完毕之前不会重新排序. 这样,播放记录里的每s首歌都是1~s的一个排列.给出一个长度为n的1≤s,n≤100000)的播放记录(不一定是从最开始记录的)xi(1≤xi≤s), 你的任务是统计下次随机排序所发生的时间有多少种有多少种可能性. 例如,s=4,播放记录是3,4,4,1,3,2,1,2,3,4…
用滑动窗口的思想,用一个数组保存每个数在窗口中出现的次数.再用一个变量记录在窗口中恰好出现一次的的数的个数,这样可以枚举所有可能的答案,判断它所对应的所有串口,当且仅当所有的串口均满足要求时这个答案可行. AC代码: #include <iostream> #include <cstdio> #include <cstdlib> #include <cctype> #include <cstring> #include <string>…
滑动窗口这个方法名字非常形象, 先是窗口的右指针尽量往右滑, 滑不动了就滑窗口的左指针, 滑到右指针又可以开始滑动为止. 这道题是要记录滑的过程中最大的窗口长度, 限制条件是窗口中不能出现重复的值. 重复的值有两种判断方法. 一种是set, 其实就是开个vis数组, 但是数据有10的六次方, 数组肯定开不下, 所以用set来代替, 用时间换空间, set的查询是logn, 比数组要慢. 第二种是用map计算出一个last数组, 保存的是与当前数相同的前一个数的坐标. 两种方法大同小异. set版…
这道题说连续子序列, 马上就想到滑动窗口. 注意窗口里面的元素中小于等于k的才是有效元素.记录窗口里面有效元素的个数, 满足了之后开始 缩短窗口, 如果左端点不是有效元素或者即使窗口中存在这个元素的个数大于1, 即使删去还是满足 窗口内有1到k这些元素的时候, 左端点就删去.就这样扫一遍答案就出来了. #include<cstdio> #include<cstring> #include<algorithm> #define REP(i, a, b) for(int i…
题意:已知歌单中的歌曲数目s,和部分的播放历史,问下一首可能播放的歌曲种数. 分析: 1.按照歌单数目s,将播放历史划分为几部分. 2.将播放历史的n首歌曲之前加上s首歌曲,之后加上s首歌曲,为防止标号重复,分别将其标号为100001 + i和200001 + i. 3.枚举这个新的序列中的每首歌,以s首为区间,区间开头为i,结尾为s + i - 1,若该区间里的数字不唯一,则不可能以该区间为标准划分,排除i%s这一划分可能. 4.判断区间里歌曲唯一的方法,记录每首歌出现次数,进入区间则加1,离…
题意:假设一种音乐播放器有一个乱序的功能,设定每播放S首歌为一个周期,随机播放编号为1~S的歌曲.现在给一个长度为N的部分播放记录,请统计下次随机排序所发生的时间的可能性种数.(1≤S,N≤100000) 解法:由"连续的S个数"想到滑动窗口.O(n)循环一次,每次判断一个周期的[i-S+1,i]是否可行,记录入tf[i].最后O(n)枚举第一个"窗口"的初始结束位置来得到可能性种数. 实现:在N个数后另外添加S-1个与之前都互不相同的数,以补全最后几个数的周期.当…
You are listening to your music collection using the shuffle function to keep the music surprising. You assume that the shuffle algorithm of your music player makes a random permutation of the songs in the playlist and plays the songs in that order u…
Shanghai Hypercomputers, the world's largest computer chip manufacturer, has invented a new classof nanoparticles called Amphiphilic Carbon Molecules (ACMs). ACMs are semiconductors. It meansthat they can be either conductors or insulators of electro…