https://www.luogu.org/problem/show?pid=3029

题目描述

Farmer John has hired a professional photographer to take a picture of some of his cows. Since FJ's cows represent a variety of different breeds, he would like the photo to contain at least one cow from each distinct breed present in his herd.

FJ's N cows are all standing at various positions along a line, each described by an integer position (i.e., its x coordinate) as well as an integer breed ID. FJ plans to take a photograph of a contiguous range of cows along the line. The cost of this photograph is equal its size -- that is, the difference between the maximum and minimum x coordinates of the cows in the range of the photograph.

Please help FJ by computing the minimum cost of a photograph in which there is at least one cow of each distinct breed appearing in FJ's herd.

依次给出N头牛的位置及种类,要求找出连续一段,使其中包含所有种类的牛,问:这连续的一段最小长度是多少?

输入输出格式

输入格式:

  • Line 1: The number of cows, N (1 <= N <= 50,000).

  • Lines 2..1+N: Each line contains two space-separated positive integers specifying the x coordinate and breed ID of a single cow. Both numbers are at most 1 billion.

输出格式:

  • Line 1: The smallest cost of a photograph containing each distinct breed ID.

输入输出样例

输入样例#1:

6
25 7
26 1
15 1
22 3
20 1
30 1

输出样例#1:

4

说明

There are 6 cows, at positions 25,26,15,22,20,30, with respective breed IDs 7,1,1,3,1,1.

The range from x=22 up through x=26 (of total size 4) contains each of the distinct breed IDs 1, 3, and 7 represented in FJ's herd.

感谢 wjcwinmt 提供题目简述

队列

#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
int n;
long long ans=2e15;
struct node
{int pos,bl;bool operator < (node p)const{return pos<p.pos;}
}e[50001];
int head,tail,que[50001];
int hassh[50001],sum[50001],cnt;
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d%d",&e[i].pos,&e[i].bl),hassh[i]=e[i].bl;sort(hassh+1,hassh+n+1);int tot=unique(hassh+1,hassh+n+1)-(hassh+1);for(int i=1;i<=n;i++) e[i].bl=lower_bound(hassh+1,hassh+n+1,e[i].bl)-hassh;sort(e+1,e+n+1);for(int i=1;i<=n;i++){if(++sum[e[i].bl]==1) cnt++;que[tail++]=i;while(head<tail && sum[e[que[head]].bl]>1) sum[e[que[head++]].bl]--;if(cnt==tot) ans=min(ans,1ll*e[que[tail-1]].pos-e[que[head]].pos);}cout<<ans;
}

转载于:https://www.cnblogs.com/TheRoadToTheGold/p/7128236.html

洛谷 3029 [USACO11NOV]牛的阵容Cow Lineup相关推荐

  1. 题解 洛谷 P3069 [USACO13JAN]牛的阵容Cow Lineup

    洛谷P3069[USACO13JAN]牛的阵容CowLineup\color{#00F}{洛谷\ P3069\ [USACO13JAN]牛的阵容Cow Lineup}洛谷 P3069 [USACO13 ...

  2. 洛谷 2953 [USACO09OPEN]牛的数字游戏Cow Digit Game

    洛谷 2953  [USACO09OPEN]牛的数字游戏Cow Digit Game 题目描述 Bessie is playing a number game against Farmer John, ...

  3. 洛谷P2879 [USACO07JAN]区间统计Tallest Cow

    洛谷P2879 [USACO07JAN]区间统计Tallest Cow 题目描述 给出牛的可能最高身高,然后输入m组数据 a b,代表a,b可以相望,最后求所有牛的可能最高身高输出 输入输出格式 输入 ...

  4. P3033 [USACO11NOV]牛的障碍Cow Steeplechase

    P3033 [USACO11NOV]牛的障碍Cow Steeplechase 题目描述 详见:P3033 [USACO11NOV]牛的障碍Cow Steeplechase solution 裸题. 对 ...

  5. [USACO11NOV]牛的障碍Cow Steeplechase(匈牙利算法)

    洛谷传送门 题目描述: 给出N平行于坐标轴的线段,要你选出尽量多的线段使得这些线段两两没有交点(顶点也算),横的与横的,竖的与竖的线段之间保证没有交点,输出最多能选出多少条线段. 因为横的与横的,竖的 ...

  6. 洛谷 P3014 [USACO11FEB]牛线Cow Line

    P3014 [USACO11FEB]牛线Cow Line 题目背景 征求翻译.如果你能提供翻译或者题意简述,请直接发讨论,感谢你的贡献. 题目描述 The N (1 <= N <= 20) ...

  7. 洛谷 P3111 [USACO14DEC]牛慢跑Cow Jog_Sliver

    P3111 [USACO14DEC]牛慢跑Cow Jog_Sliver 题目描述 The cows are out exercising their hooves again! There are N ...

  8. 洛谷P2863 [USACO06JAN]牛的舞会The Cow Prom

    稍微学习一下强连通分量. https://www.cnblogs.com/stxy-ferryman/p/7779347.html 我觉得他讲得很好. 1 #include <cstdio> ...

  9. 【洛谷 2863】牛的舞会

    题目描述 The N (2 <= N <= 10,000) cows are so excited: it's prom night! They are dressed in their ...

最新文章

  1. OSGI框架的功能和设计思
  2. Linux系统命令常用查询
  3. Python按行输出文件内容具体解释及延伸
  4. ElasticSearch评分分析 explian 解释和一些查询理解
  5. 集成Dapr的 Azure 容器应用
  6. ipfs分布式存储网络服务器系统,IPFS分布式存储是什么意思 分布式云存储服务器详解...
  7. jmeter和oracle,jmeter测试Oracle数据库
  8. python基础逻辑判断语句(九)
  9. seL4操作系统基础02:从Hello World开始
  10. 基于Arduino和Blynk平台的远程控制智能小车
  11. linux查看内存占用情况
  12. 链表的相关面试题(完整)(C语言)
  13. Spring Boot入门(2)-项目属性配置
  14. 2022版史上最牛Java学习路线图(视频教程+配套资料)
  15. 解决Mac无法识别移动硬盘以及无法识别BootCamp Windows分区的问题
  16. 利用PTGui制作全景图并用Pano2VR生成SWF文件
  17. C#POP3协议实现SSL验证登陆GMAIL
  18. matlab求包络线拟合,MATLAB 一堆散点如何求包络线
  19. String 类方法及调用案例
  20. 熊太行.关系攻略之---正确认识关系和自己

热门文章

  1. 简述CISCO防火墙透明模式
  2. C# 小数位数保留的方法集锦
  3. 5.15 pymysql 模块
  4. 一步步写一个符合Promise/A+规范的库 1
  5. Absolute Uninstaller是类似于标准的Windows添加/删除卸载工具
  6. 浅谈ASP.net中的DataSet对象
  7. java+flash在线拍照和编辑,保存到服务器(Spring3.2.2+swf+jquery)
  8. 怎样增加网站的百度权重
  9. 我们工作到底为了什么(坚持全篇看完你将受益匪浅)(转)
  10. rhel5 LAMP配置详解