找礼物(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=;
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=;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[].s;
int j=,i;
k=k-;
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();}
int ans=;
for( i=;i<n;i++)
{
if(w[i].s==t){ans++;q.push(w[i].name);continue;} }
ll dd=a[j].s;
cout<<dd/<<" "<<ans<<endl;
while(!q.empty())
{
string ss=q.front();q.pop();cout<<ss<<endl;
}
return ;
}

找礼物(find)(模拟)的更多相关文章

  1. 找礼物(find)

    找礼物(find) 题目描述 新年到了,你的好友和你(共K个人)的周围满是礼物,你让你的好友先拿,但是每个人只能拿当前离自己最近的礼物[当然如果有并列的多个礼物离你的距离相等(精确到小数点后四位,所有 ...

  2. HDU 4588 Count The Carries(找规律,模拟)

    题目 大意: 求二进制的a加到b的进位数. 思路: 列出前几个2进制,找规律模拟. #include <stdio.h> #include <iostream> #includ ...

  3. 【9210】找礼物(char* num[2000]的使用 get char num[i] = new char[1000])

    Time Limit: 10 second Memory Limit: 2 MB 问题描述 新年到了,突然间,就在那美丽的一霎那,你好友和你(K个人)的周围满是礼物,你发扬你帅气的风格,让你的好友先拿 ...

  4. ZOJ 3778 Talented Chef(找规律,模拟计算,11届ACM省赛,简单)

    题目链接 2014年浙江省赛C题,当时觉得难,现在想想这题真水.. 找规律: 若   最大的那个步骤数*m-总和>=0,那么答案就是 最大的那个步骤数 . 否则  就要另加上不够的数量,具体看代 ...

  5. UVaLive 7269 Snake Carpet (找规律,模拟)

    题意:给定一个数字n,表示有n条蛇,然后蛇的长度是 i ,如果 i 是奇数,那么它只能拐奇数个弯,如果是偶数只能拐偶数个,1, 2除外,然后把这 n 条蛇, 放到一个w*h的矩阵里,要求正好放满,让你 ...

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

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

  7. 一次愚蠢的NOIP模拟赛

    找礼物[find.pas/find.c/find.cpp] [问题描述] 新年到了,突然间,就在那美丽的一霎那,你好友和你(K个人)的周围满是礼物,你发扬你帅气的风格,让你的好友先拿,但是每个人只能拿 ...

  8. POJ 模拟题集合

    http://www.cppblog.com/Uriel/articles/101592.html 感觉这个暑假没有去年有激情啊,,,还没到状态就已经块上学了,,, 真是弱暴了,,,找几道模拟题刷刷. ...

  9. hdu_5832_A water problem(模拟)

    题目链接:hdu_5832_A water problem 这是一个惨痛的教训,想这种这么大的大数肯定就是找个规律模拟一下. 然而我们队还写JAVA,用大数艹了13发罚时,真是TM智障了. #incl ...

随机推荐

  1. 【BZOJ 3123】 [Sdoi2013]森林 主席树启发式合并

    我们直接按父子关系建主席树,然后记录倍增方便以后求LCA,同时用并查集维护根节点,而且还要记录根节点对应的size,用来对其启发式合并,然后每当我们合并的时候我们都要暴力拆小的一部分重复以上部分,总时 ...

  2. [POI2008] Poc (原名 Trians) Treap+Hash

    这个题和千山鸟飞绝体现出了一种用平衡树解决动态集合问题,主要套路就是蜜汁标记. 这个题我一开始用替罪羊树搞了一下对了28个点,后来我换成了Treap一搞对了14个点,再后来发现被卡了Hash我竟然在自 ...

  3. CSS3中transform属性的用法

    有时候网站也要愚弄一下访客,比如愚人节.下面我给大家推荐个效果,就是整个页面左右颠倒了.css3 很强大,简单的几行代码就可以帮我们实现这个效果. view source   print? 01 &l ...

  4. 洛谷P1265 公路修建

    P1265 公路修建 177通过 600提交 题目提供者该用户不存在 标签图论 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 long long类型赋值-1为什么… p党80的进 为什么不过 ...

  5. Kafka自我学习3-Scalable

    1.After created the zookeeper cluster, we found all broker cluster topic can be find in zoo1, zoo2, ...

  6. Mybatis如何查询部分字段

    解决问题:数据库表里面很多字段不太需要,有时只想取到里面的部分字段的值,如果重新定义 DTO 会比较麻烦. BookMapper.xml 文件中定义如下: ` <!-- Book全部字段 --& ...

  7. bzoj 2819 博弈论

    我们可以把 n为偶数的时候,n*n的棋盘看成若干个不相交的2*1的格子,那么对于每个2*1的格子,如果先手选了其中的一个,另一个人都可以选另一个,所以最后使先手没有可以选的格子,先手必败(这里的先手并 ...

  8. CSS3 渐变(Gradients)

    参考: http://www.runoob.com/css3/css3-gradients.html CSS3 渐变(gradients)可以让你在两个或多个指定的颜色之间显示平稳的过渡. 以前,你必 ...

  9. xcode/Interface Build(IB)/iPhone模拟器/mac/组合键常用的命令集

    1.Xcode常用快捷键: win+N:新建文件 win+shift+N:新建工程 win+O:打开工程或文件 win+S:保存 win+shift+S:另存为 win+Z:撤销一步 win+W:关闭 ...

  10. Chrome扩展及应用开发

    Chrome扩展及应用开发(电子书) http://www.ituring.com.cn/minibook/950 文档 官方 https://developer.chrome.com/extensi ...