牛客网练习赛28A
题目链接:https://www.nowcoder.com/acm/contest/200/A
链接:https://www.nowcoder.com/acm/contest/200/A
来源:牛客网
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
Akoasm有一群朋友,但是由于Akoasm是人赢朋友太多,当他想知道某一天谁生日时,总是很头疼。于是,他请你来帮忙。
Akoasm会给出他所有朋友的名字与出生年月日,名字为10个字符以内的英文字母,出生年月日为8位数字如19990320。每一个询问包含月份与日期和一个整数k,输出生日在这天的年龄第k大的人。题目保证每一个朋友的出生年月日不同,且出生年月日均在19000101至19991231,保证一定有答案。
询问中生日为四位,如0320,1211
输入描述:
输入文件第一行包含1个正整数n,m,表示一共有n个朋友,一共有m次询问。 接下来n行,每行一个字符串加八位数字,中间用一个空格隔开,分别表示名字和出生年月日。 接下来m行,每行2个正整数k与s,表示求出生日在s的年龄第k大的人。
输出描述:
一共m行,每行一个字符串表示答案
输入例子:
3 2
Lee 19380220
Jane 19400220
Mary 19990321
2 0220
1 0321
输出例子:
Jane
Mary
-->
备注:
对于100%的数据有n<=1000,m<=20 题意很简单,这里就不多解释了
思路:因为询问是一个月份,求的是在这个月份的第K大的人:
因为求的是相同月份第k大的人, 首先我们要求得在这个月份里的所有人,这就可以用set 来存储了,分别存储月份和出生年月,首先找到第一个该月份的人,然后它的后面k个就是我们要的答案了
刚开始以为可以用multimap来做,后来查阅资料才发现multimap对键值相同的数排序是根据插入顺序排的,但是我们需要的是按照大小来排序,所以是不行的
看代码:
#include<iostream>
#include<string.h>
#include<map>
#include<cstdio>
#include<cstring>
#include<stdio.h>
#include<cmath>
#include<ctype.h>
#include<math.h>
#include<algorithm>
#include<set>
#include<queue>
typedef long long ll;
using namespace std;
const ll mod=1e9;
const int maxn=+;
const int maxm=;
const int maxx=1e4+;
const ll maxe=+;
#define INF 0x3f3f3f3f3f3f
#define Lson l,mid,rt<<1
#define Rson mid+1,r,rt<<1|1
int main()
{
int n,m,k;
string a,b,c;
map<string,string>s;//一对一的关系,用map很合适
set<pair<string,string> >s1;//用于存储月份和出生年月,因为set会从小到大自动排序,先比较first,再比较second
set<pair<string,string> >::iterator it;
cin>>n>>m;
for(int i=;i<n;i++)
{
cin>>a>>b;//输入名字和出生年月
c=b.substr(,);//获取月份
s[b]=a;//将出生年月为这一天的人和名字用map对应起来,一对一的关系
s1.insert(make_pair(c,b));//把出生年月和月存在s1中
}
for(int i=;i<m;i++)
{
cin>>k>>a;
it=s1.begin();
for(it;it!=s1.end();it++)
{
if(it->first==a)//遍历找到月份为a的人
{
for(int j=;j<k;j++)//找到第K个
it++;
cout<<s[it->second]<<endl;//直接输出就可以了
break;
}
} }
return ;
}
牛客网练习赛28A的更多相关文章
- 牛客网练习赛23 F 托米的游戏
链接:https://www.nowcoder.com/acm/contest/156/F 来源:牛客网 题目描述 题目背景编不下去了 托米有一棵有根树 T, 树根为1,每轮他会在剩下的子树中等概率一 ...
- 牛客网练习赛18 A 【数论/整数划分得到乘积最大/快速乘】
链接:https://www.nowcoder.com/acm/contest/110/A 来源:牛客网 题目描述 这题要你回答T个询问,给你一个正整数S,若有若干个正整数的和为S,则这若干的数的乘积 ...
- 牛客网练习赛26B(简单的dp)
题目链接:https://www.nowcoder.com/acm/contest/180/B 链接:https://www.nowcoder.com/acm/contest/180/B来源:牛客网 ...
- 牛客网练习赛34-D-little w and Exchange(思维题)
链接:https://ac.nowcoder.com/acm/contest/297/D 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...
- 牛客网练习赛25 C 再编号
链接:https://www.nowcoder.com/acm/contest/158/C来源:牛客网 定义对 a 的再编号为 a' ,满足 . 现在有 m 次询问,每次给定 x,t ,表示询问经过 ...
- 牛客网练习赛t2(线段树)
题解: 好像因为他说了 数据范围全部在ll以内 所以直接暴力就可以过了 比较正常是用线段树来维护 洛谷上有道模板题是支持加,乘,区间和 而这题还多了区间平方和的操作 按照那题的操作 我们维护的时候保证 ...
- 牛客网练习赛7-B-购物
在遥远的东方,有一家糖果专卖店. 这家糖果店将会在每天出售一些糖果,它每天都会生产出m个糖果,第i天的第j个糖果价格为C[i][j]元. 现在的你想要在接下来的n天去糖果店进行选购,你每天可以买多个糖 ...
- 牛客网练习赛7-D-无向图(bfs,链式前向星)
题意:中文题: 思路:就是找某个点距离其他点的距离,他给你很多点也无所谓.用一个dist[]数组,这个数组保存的是他给你的点到其他点的最短距离且标记的作用,然后bfs搜索就行了. 代码: #inclu ...
- 牛客网练习赛43-C(图论)
题目链接:https://ac.nowcoder.com/acm/contest/548/C 题意:有n个知识点,学会每个知识点花T[i],已经学会了其中k个知识点,有m组关系,t1,t2,t3,表示 ...
随机推荐
- 在windows远程提交任务给Hadoop集群(Hadoop 2.6)
我使用3台Centos虚拟机搭建了一个Hadoop2.6的集群.希望在windows7上面使用IDEA开发mapreduce程序,然后提交的远程的Hadoop集群上执行.经过不懈的google终于搞定 ...
- 《Head First Servlets & JSP》-6-会话管理
容器怎么知道客户是谁 Http协议是无状态连接,客户浏览器与服务器建立连接.发出请求.得到响应,然后关闭连接.即,连接只针对一个请求/响应. 对容器而言,每个请求都来自于一个新的客户. 客户需要一个唯 ...
- Android的性能优化
ArrayList和Vector ArrayList和Vector都是内部以数组实现的List,它们两唯一的区别就是对多线程的支持,ArrayList是线程不安全的,而Vector内部对大多数方法都做 ...
- android 设置颜色的三种方法
1.利于系统自带的颜色类 如TextView1.setTextColor(Android.graphics.Color.RED); 2.数字颜色表示法 TextView1.setTextColor(0 ...
- jmeter MD5加密
MD5.jar已经上传到博客园的文件中 第一步 添加变量${Qpassword} 第二步 调用MD5加密 import hehe.Str2MD5;String res = new Str2MD5() ...
- Delphi和C#数据类型对应表
Delphi DataType C# datatype ansistring string boolean bool byte byte char char comp double currency ...
- 使用Privoxy转化SSH到HTTP代理
为什么要进行转换? 一般我们很容易找到通过SOCKS5代理的方法,如SSH,但是很多浏览器或是软件只支持HTTP方式,所以就需要将我们的SSH代理模式转为HTTP代理方式 如何转换? 使用Privo ...
- 读取txt文件的简易算法
网友在问,从一个文本文件(txt)读取数据,并做简易算法.网友的原问题大约如下, 网友的问题,虽然说是全部是数字,但没有说明是否只有一行.因此Insus.NET在实现算法时,处理文本文件是否多行,是否 ...
- tomcat的日志文件权限与启动用户的权限不一致
用户work的文件权限(umask=0002)为 u=rwx,g=rwx,o=rx 但是tomcat的日志文件的权限却是:为什么会不一样呢? 这是因为tomcat在启动(catalina.sh)时会重 ...
- Python中dataframe\ array\ list相互转化
import pandas as pd import numpy as np #创建列表 a1=[1,2,3] #arange函数:指定初始值.终值.步长来创建数组 a2=np.arange(0,1, ...