找礼物(find)

时间限制: 1 Sec  内存限制: 64 MB
提交: 57  解决: 4
[提交][状态][讨论版]

题目描述

新 年到了,你的好友和你(共K个人)的周围满是礼物,你让你的好友先拿,但是每个人只能拿当前离自己最近的礼物[当然如果有并列的多个礼物离你的距离相等 (精确到小数点后四位,所有运算均为去尾),这些礼物就都属于这个人]。现在你们所在的位置是原点(0,0),每个礼物的位置用坐标表示。现在告诉你每个 礼物的坐标,还有每个礼物是谁送的。要你找出你的礼物离你多远,你能拿到多少礼物,这些礼物是谁送的。如果你拿不到礼物,请输出“555…”。

输入

第1行:N和K分别表示礼物的个数和人数(K≤N≤100000);
第2到N+1行:每行先是赠送礼品人的姓名,然后是礼物的坐标(x,y)(坐标绝对值小于106)。数据间用空格分开。

输出

第1行:D和U表示礼物距你多远(只要去尾后的整数)和你能拿到多少礼物。
第2到U+1行:每行一个人名,表示送礼的人(按照输入的顺序输出)。

样例输入

5 2
Jason 1 1
Herry 4 4
Patty 3 4
Tom 2 10
Petter 5 10

样例输出

5 1
Patty
【分析】太坑了,太坑了,太坑了,重要的事情说三遍。一开始用double存距离,WA了好几发,然后听了一个大神的劝告,乖乖的用上long long。下面是AC代码。

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <time.h>
#include <string>
#include <map>
#include <stack>
#include <vector>
#include <set>
#include <queue>
#define inf 0x3f3f3f3f
#define mod 1000000007
typedef long long ll;
using namespace std;
const int N=100010;
int k,n,m;
queue<string>q;
struct man
{ll s;string name;
};man a[N],w[N];
bool cmp(man g,man h)
{return g.s<h.s;
}
int main () {cin>>n>>k;string l;for(int i=0;i<n;i++){ll aa,b;cin>>l>>aa>>b;a[i].s=(ll)(sqrt(aa*aa+b*b+0.0)*10000ll);a[i].name=l;w[i].s=a[i].s;w[i].name=l;}sort(a,a+n,cmp);ll t=a[0].s;int j=0,i;k=k-1;while(k--){for( i=j;i<n;i++){if(a[i].s==t)continue;else {j=i;t=a[i].s;break;}}j=i;t=a[i].s;}if(j>=n){printf("555...\n");exit(0);}int ans=0;for( i=0;i<n;i++){if(w[i].s==t){ans++;q.push(w[i].name);continue;}}ll dd=a[j].s;cout<<dd/10000<<" "<<ans<<endl;while(!q.empty()){string ss=q.front();q.pop();cout<<ss<<endl;}return 0;
}

View Code

转载于:https://www.cnblogs.com/jianrenfang/p/5722784.html

找礼物(find)(模拟)相关推荐

  1. P3901-数列找不同【模拟】

    正题 题目链接:https://www.luogu.org/problem/P3901 题目大意 一个序列AAA,每次询问一个区间求这个区间的数是否各不相同. 解题思路 用lastilast_ilas ...

  2. java模拟多个用户操作,JAVA 模拟多用户提交动作

    为了测试项目里的多线程操作,在网上找的一个模拟多线程的一个程序. import java.io.BufferedReader; import java.io.File; import java.io. ...

  3. syn flood 攻击 c 语言源代码,以太网模拟syn flood攻击

    以太网模拟syn flood攻击 (2012-06-08 00:55:49) 标签: 以太网 杂谈 以太网模拟syn flood攻击最近在网上找了一些模拟syn flood攻击的c语言源代码,顺便写了 ...

  4. 特别的生日礼物推荐-男女朋友最想要的礼物-节日礼物送长辈

    想要找礼物推荐的可以微信扫一扫上面的小程序码,也可以直接微信搜索小程序"礼物小选" 有各种礼物推荐以及送礼排行榜 还有各种攻略

  5. python 模拟鼠标点击桌面指定位置

    from pykeyboard import * from pymouse import * import win32api # 键盘鼠标事件 m=PyMouse() k=PyKeyboard() # ...

  6. 程序员在情人节送什么礼物呢?

    情人节到了,程序员们给女友准备什么惊(奇)喜(葩)的礼物呢?看看下面的程序员怎么答的吧-- 世界有一种语言,只有两个字--不是S B 啐楼: 我:今年过节我就不送你什么了,直接送钱你自己买吧,1000 ...

  7. xdotool模拟击键和鼠标移动

    最近双十一抢红包的活动比较火,我也就去玩了一下,在一个小活动里,需要不停的点击左箭头和右箭头,让红包不停的跑,但自己点的比较慢,老是出现下面的图片 看到提示还有n多公里才跑完,感觉极度不爽,一怒之下, ...

  8. 关于并发和并行,Go和Erlang之父都弄错了?

    作者|Yossi.Kreinin 来源|OSChina网站 翻译|Andy.袁不语.YuanyuanL.姜鹏飞 校对|胡燕君(OneFlow) 根据字面词义,并发(concurrent)是指竞争或对抗 ...

  9. 团圆季,来钛空舱一起赏花灯丨钛空舱赏灯系列

    关注"潜在价值",最好的技术商业媒体,了解那些智慧商业 本文由潜在价值旗下 创意产品推荐平台"钛空舱"推出 钛空(ID:TiKong-life) 一个关注于科技 ...

最新文章

  1. c语言中指针中 - 和 。的区别?
  2. zabbix2.4详细安装过程
  3. java 正则表达式 提取ip_java正则表达式提取地址中的ip和端口号
  4. android怎么垂直居中且靠右,placeholder 靠右垂直居中/位置兼容
  5. 打印n×n数字方阵python_2020华为春招amp;#8211;N阶方阵旋转(python) - 易采站长站
  6. oracle9可以访问8,使用Oracle9i全索引扫描快速访问数据
  7. Java8-2-Lambda表达式实战-一句话实现Map中按照Value排序
  8. css--小米商城----logo与home图标切换
  9. 阅读-《金字塔原理》
  10. 数字签名和数字证书的区别与联系
  11. magicbookpro做php开发,近乎完美!荣耀MagicBook Pro优缺点解读
  12. 如何安装TFP(tensorflow概率编程)
  13. 刷新页面,js实现文章浏览量自动更新
  14. 比较Cint() , int() , fix() ,round()的区别
  15. 郁闷的sendto失败
  16. 加解密、PKI与CA基础
  17. 工具 | Charles对Chrome浏览器抓包
  18. IaaS 、PaaS、Bass、Fass、SaaS、无服务的概念与差别
  19. 前端js实现图片上传
  20. wps云文档 wps自动备份怎么设置和取消

热门文章

  1. build vue3 后压缩的文件在哪_Vue 3学习:4. 集成vuex
  2. mysql active推送消息_java实现基于activeMQ的消息推送
  3. re管理器java格式_正则表达式工具类——ReUtil
  4. 光彩集团小宇智能机器人_【青春关注】集团公司首台智能巡检机器人在我矿上线运行...
  5. java静态代码块和构造方法_Java静态代码块和构造方法执行顺序
  6. pytorch Tensor autograd functions
  7. 网络通信 MAC与ARP
  8. Pandas Groupby ApplyAgg
  9. Matplolib subplot 子图控制
  10. 管理站点复制 【Windows Server 2019】活动目录(Acitve Directory)——在同一区域安装多台域控制器