紫书P247 例题8-15

先预处理一遍每个窗口内的每个数字是否只出现一次,结果存到flag数组里。

还有个特殊构造的地方,由于首尾窗口可能存在不完整的情况,那么我们在n个数后面在添加s个元素,尾部窗口就不会出现不完整的情况了。

然后直接枚举求出结果。

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <algorithm>
#include <iostream>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <assert.h>
typedef long long LL;
using namespace std;
int a[200001], b[300001], flag[200001];
int main()
{  //freopen("test0.in", "r", stdin);  //freopen("test0.out", "w", stdout);  int T, s, n, ans;scanf("%d", &T);while(T--){scanf("%d %d", &s, &n);for(int i = 0; i < n; ++i){scanf("%d", &a[i]);}for(int i = n; i < n + s; ++i){a[i] = 100001+i-n;}memset(flag, 0, sizeof(flag));memset(b, 0, sizeof(b));int cnt = 0;for(int i = 0; i < n+s; ++i){if(i >= s){--b[a[i-s]];if(b[a[i-s]] >= 1){--cnt;}}++b[a[i]];if(b[a[i]] == 1 && cnt == 0){flag[i] = 1;}else if(b[a[i]] > 1){++cnt;}}ans = 0;for(int i = 0; i < s; ++i){int flg = 1;for(int j = i; j < n+s; j += s){if(!flag[j]){flg = 0;break;}}if(flg){++ans;}}printf("%d\n", ans);}return 0;
}

[算法竞赛入门经典] UVA 12174 - Shuffle相关推荐

  1. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  2. 《算法竞赛入门经典——训练指南》第一章相关内容

    #<算法竞赛入门经典--训练指南>第一章相关内容 希望各位大牛能指导! 红色为已经做了的...黄色背景是还有不懂地方,希望在年前能刷完第一章啊.... 更新版.google上貌似又加了ex ...

  3. 《算法竞赛入门经典训练指南》pdf

    下载地址:网盘下载 基本介绍 编辑 内容简介 <算法竞赛入门经典:训练指南>题目多选自近年来ACM/ICPC区域赛和总决赛真题,内容全面,信息量大,覆盖了常见算法竞赛中的大多数细分知识点. ...

  4. (Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO

    下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinej ...

  5. 算法竞赛入门经典(第二版)第三章习题

    声明:作者水平有限,只是会基础C语言的小菜,C++还未入门.作者仅根据算法竞赛入门经典(第二版)书上第三章习题所述题意而编写,并未严格按照原题的输入输出编写,代码仅经过个人测试(OJ网站太慢了).代码 ...

  6. 《算法竞赛入门经典》(第二版)代码及详细解释(持续更新!)

    笔者中山大学硕士,医学生+计科学生的集合体,机器学习爱好者. 现发布[刘汝佳<算法竞赛入门经典>(第二版)--紫书]的例题和习题的代码和详细解释. 欢迎批评指正! 另外欢迎关注本人微信公众 ...

  7. #《算法竞赛入门经典》勘误

    转自http://code.google.com/p/aoapc-book/wiki/BeginningAlgorithmContestsErrata #<算法竞赛入门经典>勘误 关于勘误 ...

  8. 《算法竞赛入门经典》Chap3

    <算法竞赛入门经典(第二版)>第三章 思考题 题目1 必要的存储量 题目2 统计字符1的个数 示例程序 程序3-1 逆序输出 程序3-2 开灯问题 程序3-3 蛇形填数 程序3-4 竖式问 ...

  9. 算法竞赛入门经典——训练指南

    <算法竞赛入门经典--训练指南> 基本信息 作者: 刘汝佳 陈锋 [作译者介绍] 丛书名: 算法艺术与信息学竞赛 出版社:清华大学出版社 ISBN:9787302291077 上架时间:2 ...

最新文章

  1. node项目部署到服务器报错,记一次部署node项目到centos服务器经历
  2. JDBCUtils工具类编写
  3. Ionic创建页面以及页面之间跳转、页面添加返回按钮、新增底部页面
  4. 「日常训练」Alternative Thinking(Codeforces Round #334 Div.2 C)
  5. 如何用代码对repeating section控件新增Item(InfoPath)
  6. java中synchronized(同步代码块和同步方法)详解及区别
  7. 与context的关系_Android-Context
  8. 动漫风格迁移——AnimeGANv2的实现【复现】
  9. 十大笔记本品牌型号命名规则【联想】
  10. python百度贴吧怎么爬取最早的帖子_Python爬虫爬取百度贴吧的帖子
  11. segy地震数据的读取python_SEGY地震数据格式分析与读写
  12. SQL Server 2008管理工具
  13. xml和接口简单理解
  14. pytorch统计模型参数量
  15. RNA-seq流程报告
  16. latex出现File ended while scanning use of \frame.错误
  17. strapi终于装好了,网速太慢了,处理了一下代理,新建了一个.zshrc文件,加入了pon和poff两个函数
  18. 基站、WiFi、IP定位原理介绍与区别
  19. html返回首页页面代码,后台返回的HTML整个页面代码打开方法
  20. 学习Python要学习哪些课程?

热门文章

  1. 涨停缩量平台调整选股策略(附筛选python代码)
  2. storm的容错机制
  3. AI计算盒子SE5笔记
  4. Spring官网阅读(四)BeanDefinition(上)
  5. 新手问题:如何理解sql语句中 +textBox1.Text+
  6. Ubuntu虚拟机没有网络图标或者无法获取IP地址
  7. Linux命令 rm -rf报错 mv无效选项 --‘r‘
  8. 彻底掌握 Javascript(二十一)async 函数-曾亮-专题视频课程
  9. gateway+vue实现防接口重放、防篡改
  10. 混合罚函数法matlab报错,罚函数法MATLAB程序