题意:有n天,第i天有ki件衣服选择,从中选m天,使得所选衣服的最小值和最大值差值最小。

这题我虽然过了但严格来讲我WA了,因为数据太水的原因全部取最小值也能过。标准做法应该是尺取。

尺取很久都没用过了,有点生,印象中尺取主要思想应该是这样的:两个指示位置的变量,在符合要求的情况下右方指示器向右移动,不符合的话左侧指示器向右移动。

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<map>using namespace std;const int N = 2e6 + 10;int ret[N];struct node {int val;int id;
}date[N];bool cmp(node a, node b) {return a.val < b.val;
}int main() {int n, m, top = 0;scanf("%d %d", &n, &m);for (int i = 1; i <= n; i++) {int sum;scanf("%d", &sum);for (int k = 1; k <= sum; k++) {scanf("%d", &date[++top].val);date[top].id = i;}}sort(date + 1, date + 1 + top, cmp);int l = 1, r = 1, cnt = 0, ans = 0x3f3f3f3f;while (true) {while (r <= top && cnt < m) {if (ret[date[r].id] == 0) {cnt++;}ret[date[r].id]++;if (cnt == m)break;++r;}while (cnt == m && l <= r) {if (ret[date[l].id] == 1) {ans = min(ans, date[r].val - date[l].val);cnt--;}ret[date[l].id]--;if (cnt != m) break;++l;}r++;//注意r++和l++,否则会陷入死循环l++;if (r >= top) break;}printf("%d\n", ans);
}

值得一提的是,我一开始用map来记录第i天出现的次数会T233

Groundhog Looking Dowdy(尺取大法)相关推荐

  1. 牛客多校9 - Groundhog Looking Dowdy(尺取)

    题目链接:点击查看 题目大意:给出 n 天,每天可以有数件衣服可以选择,但每天只能选择一件衣服穿,每件衣服都有权值,现在需要挑出 m 天的衣服,使得最大值与最小值之差最小 题目分析:比赛时为了恰烂分用 ...

  2. 洛谷 - P1381 - 单词背诵 - 哈希 - 尺取

    https://www.luogu.org/problemnew/show/P1381 字符串匹配,用哈希总没有错的. 然后就是尺取了,题目要求首先尽可能多覆盖,那么每次尾巴往后面长. 一开始先找到第 ...

  3. POJ 3320 Jessica's Reading Problem (尺取)

    Description 给出一段长度为\(n\)的整数序列,求包含所有出现过的数的连续区间的最小长度. Input 第一行给出序列长度\(n\),第二行给出\(n\)个整数,表示这个序列.\(n \l ...

  4. 部分和问题 (dfs搜索 尺取)

    部分和问题 给定整数a1, a2, a3, a4,  ..........   ,  an  ,判断是否可以从中取出若干个数,使得他们的和恰好为k  . 1  <= n <= 20 测试数 ...

  5. Innumerable Ancestors 尺取 dfs序 lca

    给一棵树,m次查询,每次查询给两个集合,从这两个集合中分别选一个结点,使得这两个结点的lca的深度最大 考虑dfs序为3, 4, 5的三个结点,3和4的lca深度一定大于等于3和5的lca深度 所以可 ...

  6. Codeforces Round #321 (Div. 2) B. Kefa and Company (尺取)

    排序以后枚举尾部.尺取,头部单调,维护一下就好. 排序O(nlogn),枚举O(n) #include<bits/stdc++.h> using namespace std; typede ...

  7. AtCoder - arc098_b Xor Sum 2(尺取+位运算)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,现在要求 AlxorAl+1xor...xorAr=Al+Al+1+...+ArA_l\ xor\ A_{l+1}\ xor\ ...\ ...

  8. 牛客 - Alice and Bob(尺取+二分)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的数列,和一个数字 kkk.现在给出 mmm 次询问,每次查询需要回答区间 [l,r][l,r][l,r] 内有多少个子区间,满足区间内不同的数字 ...

  9. CodeForces - 1358D The Best Vacation(前缀和+尺取)

    题目链接:点击查看 题目大意:给出 n 个数组成的数列,每个元素都可以展开为 1 , 2 , 3 .... a[ n ] ,现在将数列首尾相接,要求选取一段长度为 x 的连续数列,使得元素和最大 题目 ...

  10. CodeForces - 1333C Eugene and an array(尺取)

    题目链接:点击查看 题目大意:给出一个长度为 n 的数组 a,抛出 good 数组的定义: good 数组为数组 a 的一个子数组 good 数组的任意子数组之和均不为 0 (注意区分子数组和子数列的 ...

最新文章

  1. Django models Form model_form 关系及区别
  2. Youth---青春
  3. GPT-3说:马斯克是世界最强的人,但没有他人类会更好
  4. y7000 intel nvidia 双显卡安装Ubuntu16.04
  5. cygwin下使用gcc编译c可执行程序
  6. 仿58 php框架源码,转转最新源码
  7. 2017.5.25-5.28 hide捉迷藏 失败总结
  8. linux 邮件附件 中文,linux bash下通过mailx发送中文内容显示为附件的解决
  9. Ajax提交与传统表单提交的区别说明
  10. RN react-navigation使用
  11. ModelSim入门教程和两个典型例子
  12. CSP信息学奥赛知识总结
  13. c#明华rf读卡器_明华URF-R330读卡器C#代码示例
  14. 青年教师计算机培训美篇,小学生停课不停学美篇 小学生停课不停学美篇开头语...
  15. edu教育网邮箱注册申请普及
  16. IDEA自定义带JavaDoc的getter/setter模板
  17. php实现自定义中间logo的微信小程序码
  18. 谈谈Linux中Redis的薪火相传与反客为主及如何实现
  19. 测试用例设计方法(2)
  20. 学生宿舍管理数据库设计(上)

热门文章

  1. 小学生数量成为楼市风向标?
  2. (微信定时发送消息)一个java文件,完成可配置的微信定时发送消息任务
  3. oracle北京时区,Oracle中的时区偏移
  4. 会话固定攻击(session fixation attack)及解决办法
  5. 删软件怎么用计算机管理员删除,win10卸载软件需要管理员权限,卸载软件没有管理员权限...
  6. Python爬取拉钩招聘网,告诉你:这类程序员最赚钱!
  7. 汉子转五笔SQL脚本函数
  8. java web网上书城_JavaWeb搭建网上图书商城毕业设计
  9. ACM教程 - (数论)正整数分解使得乘积最大问题
  10. 持续更新 iText in Action 2nd Edition中文版 个人翻译