Groundhog Looking Dowdy(尺取大法)
题意:有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(尺取大法)相关推荐
- 牛客多校9 - Groundhog Looking Dowdy(尺取)
题目链接:点击查看 题目大意:给出 n 天,每天可以有数件衣服可以选择,但每天只能选择一件衣服穿,每件衣服都有权值,现在需要挑出 m 天的衣服,使得最大值与最小值之差最小 题目分析:比赛时为了恰烂分用 ...
- 洛谷 - P1381 - 单词背诵 - 哈希 - 尺取
https://www.luogu.org/problemnew/show/P1381 字符串匹配,用哈希总没有错的. 然后就是尺取了,题目要求首先尽可能多覆盖,那么每次尾巴往后面长. 一开始先找到第 ...
- POJ 3320 Jessica's Reading Problem (尺取)
Description 给出一段长度为\(n\)的整数序列,求包含所有出现过的数的连续区间的最小长度. Input 第一行给出序列长度\(n\),第二行给出\(n\)个整数,表示这个序列.\(n \l ...
- 部分和问题 (dfs搜索 尺取)
部分和问题 给定整数a1, a2, a3, a4, .......... , an ,判断是否可以从中取出若干个数,使得他们的和恰好为k . 1 <= n <= 20 测试数 ...
- Innumerable Ancestors 尺取 dfs序 lca
给一棵树,m次查询,每次查询给两个集合,从这两个集合中分别选一个结点,使得这两个结点的lca的深度最大 考虑dfs序为3, 4, 5的三个结点,3和4的lca深度一定大于等于3和5的lca深度 所以可 ...
- Codeforces Round #321 (Div. 2) B. Kefa and Company (尺取)
排序以后枚举尾部.尺取,头部单调,维护一下就好. 排序O(nlogn),枚举O(n) #include<bits/stdc++.h> using namespace std; typede ...
- AtCoder - arc098_b Xor Sum 2(尺取+位运算)
题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,现在要求 AlxorAl+1xor...xorAr=Al+Al+1+...+ArA_l\ xor\ A_{l+1}\ xor\ ...\ ...
- 牛客 - Alice and Bob(尺取+二分)
题目链接:点击查看 题目大意:给出一个长度为 nnn 的数列,和一个数字 kkk.现在给出 mmm 次询问,每次查询需要回答区间 [l,r][l,r][l,r] 内有多少个子区间,满足区间内不同的数字 ...
- CodeForces - 1358D The Best Vacation(前缀和+尺取)
题目链接:点击查看 题目大意:给出 n 个数组成的数列,每个元素都可以展开为 1 , 2 , 3 .... a[ n ] ,现在将数列首尾相接,要求选取一段长度为 x 的连续数列,使得元素和最大 题目 ...
- CodeForces - 1333C Eugene and an array(尺取)
题目链接:点击查看 题目大意:给出一个长度为 n 的数组 a,抛出 good 数组的定义: good 数组为数组 a 的一个子数组 good 数组的任意子数组之和均不为 0 (注意区分子数组和子数列的 ...
最新文章
- Django models Form model_form 关系及区别
- Youth---青春
- GPT-3说:马斯克是世界最强的人,但没有他人类会更好
- y7000 intel nvidia 双显卡安装Ubuntu16.04
- cygwin下使用gcc编译c可执行程序
- 仿58 php框架源码,转转最新源码
- 2017.5.25-5.28 hide捉迷藏 失败总结
- linux 邮件附件 中文,linux bash下通过mailx发送中文内容显示为附件的解决
- Ajax提交与传统表单提交的区别说明
- RN react-navigation使用
- ModelSim入门教程和两个典型例子
- CSP信息学奥赛知识总结
- c#明华rf读卡器_明华URF-R330读卡器C#代码示例
- 青年教师计算机培训美篇,小学生停课不停学美篇 小学生停课不停学美篇开头语...
- edu教育网邮箱注册申请普及
- IDEA自定义带JavaDoc的getter/setter模板
- php实现自定义中间logo的微信小程序码
- 谈谈Linux中Redis的薪火相传与反客为主及如何实现
- 测试用例设计方法(2)
- 学生宿舍管理数据库设计(上)
热门文章
- 小学生数量成为楼市风向标?
- (微信定时发送消息)一个java文件,完成可配置的微信定时发送消息任务
- oracle北京时区,Oracle中的时区偏移
- 会话固定攻击(session fixation attack)及解决办法
- 删软件怎么用计算机管理员删除,win10卸载软件需要管理员权限,卸载软件没有管理员权限...
- Python爬取拉钩招聘网,告诉你:这类程序员最赚钱!
- 汉子转五笔SQL脚本函数
- java web网上书城_JavaWeb搭建网上图书商城毕业设计
- ACM教程 - (数论)正整数分解使得乘积最大问题
- 持续更新 iText in Action 2nd Edition中文版 个人翻译