洛谷p2994题解 [USACO10OCT] Dinner Time S

2024-08-29 02:52

本文主要是介绍洛谷p2994题解 [USACO10OCT] Dinner Time S,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

Farmer John's N (1 <= N <= 1,000) cows conveniently numbered 1..N are participating in the IOI in Bulgaria. The cows like the Bulgarian sun and are enjoying their holiday. All seems well.

This changes around dinner time. The restaurant is rather small, having only M (1 <= M <= N) cow seats conveniently numbered 1..M. Each cow starts at a location CX_i, (-1,000,000 <= CX_i <= 1,000,000; ); the seats can be found at SX_j, (-1,000,000 <= SX_j <= 1,000,000; ).

The cows have a very efficient (though primitive) method to distribute themselves into the seats. As soon as a cow is certain she will get to a seat first, she rushes there as fast as she can (all cows runs equally fast).

Farmer John's cows, like all prize cows, have no problem jumping over seats, tables, or other cows, so they can run in a straight line. When multiple cows can reach a seat at the very same time, the oldest cow (the one appearing earlier in the input data) gets the seat. Likewise, when a cow can be the first to reach multiple seats she will also choose the one appearing earliest in the input.

Some cows won't be able to eat dinner, and those hungry cows are collectively planning to steal Farmer John's very own food. Farmer John would like a list of cows he should be wary of. (In the case when there are no hungry cows, output 0). Can you help him?

NOTE: Standard distance calculations will likely require an

intermediate result that will fit into a 64-bit integer but not into a 32-bit integer.

输入格式

* Line 1: Two space-separated integers: N and M

* Lines 2..N+1: Line i+1 contains two space separated integers: CX_i and CY_i

* Lines N+2..N+M+1: Line j+N+1 contains two space separated integers: SX_j and SY_j

输出格式

* Lines 1..N-M: Line i contains the number of the ith cow that Farmer John should be wary of. The cow numbers should be listed in increasing order.

题意翻译

题目描述

农场主约翰的 N(1≤N≤10^6)头奶牛被编号为 1∼N,它们正在保加利亚参加 IOI。奶牛们喜欢保加利亚的太阳并享受着它们的假日,一切看起来都没问题。

变化发生在晚餐时间前后。这家餐馆很小,只有 M(1≤M≤N)个座位,编号为 1∼M。每头牛从一个位置 CXi​,CYi 进入餐馆(−10^6≤CXi≤10^6,−10^6≤CYi≤10^6);座位可以在 SXjSXj​,SYjSYj​ 找到(−10^6≤SXj≤10^6,−10^6≤SYj≤10^6)。

奶牛有一种非常有效的(尽管很原始)方法把自己分配到座位上。一旦某只奶牛确定她会先到某个座位上,她就会尽快赶到那里(所有的奶牛都跑得一样快)。

农场主约翰的奶牛和所有获奖的奶牛一样,跳过座位、桌子或其他奶牛都没有问题,因此它们可以直线奔跑。当多头牛可以同时到达一个座位时,最老的牛(在输入数据中出现得更早的牛)获得座位。当一头牛可以第一个到达多个座位时,她也会选择在输入中最早出现的座位。

一些奶牛将不能吃晚饭,这些吃不到饭的饥饿的奶牛正集体计划偷农场主约翰自己的食物。农场主约翰想要一份他应该提防的奶牛名单。(如果没有饥饿的奶牛,则输出 0)。你能帮他吗?

注:在计算中可能会有超过 32 位整数范围但在 64 位整数范围内的数。


输入格式

第一行:两个空格分隔的整数:N 和 M。

第 2∼N+1 行:第 i+1 行包含两个空格分隔的整数:CXi​ 和 CYi。

第 N+2∼N+M+1 行:行 j+N+1 包含两个空格分隔的整数:SXj 和 SYj。


输出格式

第 11 行到第 (N−M) 行:第 i 行包含农场主约翰应该提防的第 i 头牛的编号。奶牛的编号应递增排序。

输入输出样例

输入 #1复制

2 1 
0 1 
1 0 
1 10 

输出 #1复制

2 

思路:

我们考虑暴力求解,我们可以用一个数组来存储这个桌子有没有坐奶牛。

Code:

#include<bits/stdc++.h>
using namespace std;
long long a[1005],b[1005],c,d,flag[1005],pos,dis,mindis=1e15,n,m;
int main(){cin>>n>>m;for(int i=1;i<=n;i++)cin>>a[i]>>b[i];//输入for(int j=1;j<=m;j++){cin>>c>>d;//输入dis=0,mindis=1e15;for(int i=1;i<=n;i++){if(flag[i]==1)continue;//如果有牛了,跳出循环dis=(a[i]-c)*(a[i]-c)+(b[i]-d)*(b[i]-d);//勾股定理if(dis<mindis){mindis=dis;//最短距离pos=i;//存储下来}}flag[pos]=1;//标记}if(n==m){//特判cout<<0;return 0;}for(int i=1;i<=n;i++){//输出if(flag[i])continue;cout<<i<<"\n";}
}

总结:评绿评高了

这篇关于洛谷p2994题解 [USACO10OCT] Dinner Time S的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1116633

相关文章

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

C - Word Ladder题解

C - Word Ladder 题解 解题思路: 先输入两个字符串S 和t 然后在S和T中寻找有多少个字符不同的个数(也就是需要变换多少次) 开始替换时: tips: 字符串下标以0开始 我们定义两个变量a和b,用于记录当前遍历到的字符 首先是判断:如果这时a已经==b了,那么就跳过,不用管; 如果a大于b的话:那么我们就让s中的第i项替换成b,接着就直接输出S就行了。 这样

linux 下Time_wait过多问题解决

转自:http://blog.csdn.net/jaylong35/article/details/6605077 问题起因: 自己开发了一个服务器和客户端,通过短连接的方式来进行通讯,由于过于频繁的创建连接,导致系统连接数量被占用,不能及时释放。看了一下18888,当时吓到了。 现象: 1、外部机器不能正常连接SSH 2、内向外不能够正常的ping通过,域名也不能正常解析。

【秋招笔试】9.07米哈游秋招改编题-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收集 100+ 套笔试题,笔试真题 会在第一时间跟新 🍄 题面描述等均已改编,如果和你笔试题看到的题面描述

LeetCode 第414场周赛个人题解

目录 Q1. 将日期转换为二进制表示 原题链接 思路分析 AC代码 Q2. 范围内整数的最大得分 原题链接 思路分析 AC代码 Q3. 到达数组末尾的最大得分 原题链接 思路分析 AC代码 Q4. 吃掉所有兵需要的最多移动次数 原题链接 思路分析 AC代码 Q1. 将日期转换为二进制表示 原题链接 Q1. 将日期转换为二进制表示 思路分析

python内置模块datetime.time类详细介绍

​​​​​​​Python的datetime模块是一个强大的日期和时间处理库,它提供了多个类来处理日期和时间。主要包括几个功能类datetime.date、datetime.time、datetime.datetime、datetime.timedelta,datetime.timezone等。 ----------动动小手,非常感谢各位的点赞收藏和关注。----------- 使用datet