小目录

  • 链接
  • 题目描述
  • 输入
  • 输出
  • 样例输入
  • 样例输出
  • 数据范围或提示
  • 思路
  • 代码

链接

A-牛半仙的妹子串

题目描述

牛半仙有 n n_{} n​个妹子。
牛半仙用对于每个妹子都有一个名字,并且给了每个妹子一个评分。
牛半仙的审美与名字有关,他想知道名字以某字母结尾的妹子中,评分第 k k_{} k​大的妹子的名字。
如果出现评分相同的妹子,牛半仙会认为先读入的妹子评分更大。

由于牛半仙是只死鸽子(咕咕咕) ,于是他找到了你,请你帮帮他。

输入

第一行两个正整数 n , m n,m_{} n,m​ 。
接下来 n n_{} n​ 行,每行一个妹子名,保证由小写字母组成,长度不超过 50,然后一个整数,表示这个妹子的评分。
接下来 m m_{} m​ 行,每行一个字母 x x_{} x​ ,表示询问名字以某个字母结尾的妹子,然后一个正整数 k k_{} k​,表示询问排名为 k k_{} k​ 的妹子。

输出

m m m 行,每个询问输出一行,表示妹子的名字。
如果名字以 x x_{} x​ 结尾的妹子中不存在排名为 k k_{} k​ 的妹子,输出 Orz YYR tql。(不需要输出引号)

样例输入

5 2
aaa 1
aa 2
a 3
ab 3
bb 4
b 2
a 4

样例输出

ab
Orz YYR tql

数据范围或提示

对于 5 5% 5的数据: n ≤ 10 , m ≤ 1000 n≤10,m≤1000 n≤10,m≤1000
对于 20 % 20\% 20% 的数据: n , m ≤ 1000 n,m\leq 1000 n,m≤1000
对于所有数据 n , m ≤ 1 0 5 , k ≤ n n,m\leq 10^5,k\leq n n,m≤105,k≤n,保证名字长度小于等于 50

思路

我们考虑如何排序,显然是一个双关键字排序(但是我考场上竟然忘了排原顺序)
注意,它题目的第 k k k位是不算重复的,也就是 k k k相同也算不同个数(因为还有原顺序的排序)
然后判断是否有答案,输出即可

代码

#include<algorithm>
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>using namespace std;string s, ansx[100005];
int num[55];
int n, x, v, m;struct tt
{int val, num;bool qq;
}a[35][100005];bool cmp(tt i, tt j)
{if (i.val != j.val) return i.val > j.val; return i.num < j.num;}//双关键字排序int main()
{scanf("%d%d", &n, &m);for (int i = 1; i <= n; ++i){cin>>s;int p = s.length() - 1;int w = s[p] - 96;scanf("%d", &v);ansx[i] = s;a[w][++num[w]] = (tt){v, i, 1};} for (int i = 0; i < 50; ++i)sort(a[i] + 1, a[i] + num[i] + 1, cmp);for (int i = 1; i <= m; ++i){cin>>s;scanf("%d", &x);int p = s.length() - 1;int w = s[p] - 96;if (a[w][x].qq) cout<<ansx[a[w][x].num]<<endl;//判断是是否有答案else printf("Orz YYR tql\n");}return 0;
}

【排序】【牛客模拟赛】牛半仙的妹子串相关推荐

  1. 牛客网赛码网 输入输出格式 pythonC++

    牛客网&赛码网 输入输出格式 python&C++ Note: 你的程序需要stdin(标准输入)读取输入,然后stdout(标准输出)来打印结果,举个例子,你可以使用c语言的scan ...

  2. 牛客巅峰赛12th C.一起来看流星雨(旋转卡壳三分)

    牛客巅峰赛12th C.一起来看流星雨(旋转卡壳&三分) 题意:给定二维平面nnn个点,每个点有个速度向量,求最开始距离最远的两个点在运动过程中的最小距离. 思路:求距离最远的两个点就凸包gr ...

  3. 牛客网赛码网 输入输出格式

    目录 牛客网&赛码网输入输出 牛客网 单行输入 多行输入,每一行是一个测试样例 多个测试用例,每个测试用例有多行 赛码网 单个输入,单个输出 单行多个输入,单行多个输出,空格分割 多个测试案例 ...

  4. 牛客题霸 [ 最长回文子串] C++题解/答案

    牛客题霸 [ 最长回文子串] C++题解/答案 题目描述 对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度. 给定字符串A以及它的长度n,请返回最长回文子串的长度. 题解: 两个方法: ...

  5. 2020蓝桥杯B 组省赛计蒜客模拟赛(一)题解

    2020蓝桥杯省赛 B 组计蒜客模拟赛(一)目录 试题 A:有趣的数字(结果填空) 试题 B:爬楼梯(结果填空) 试题 C:七巧板(结果填空) 试题 D:苹果(结果填空) 试题 E:方阵(结果填空) ...

  6. 牛客网赛码网输入输出总结(python版)

    1. 单行输入: n, m = map(int, sys.stdin.readline().strip().split()) 对该行中所有元素取整型后赋给等式左边若干参数 2. 多行输入: 先获取第一 ...

  7. 牛客网 赛码网 js输入输出

    牛客网 详细地址 let readline = require('readline') const r1 = readline.createInterface({input: process.stdi ...

  8. 牛客小白赛190615场

    夜色已经很晚了,所以我长话短说 1.表单 链接:https://ac.nowcoder.com/acm/contest/917/C 来源:牛客网 输入描述: 第一行两个整数n,Q 后n行每行一个字符串 ...

  9. oj记录 牛客 高校赛 C派蒙的奇妙冒险------石之海

    题目描述 链接:https://ac.nowcoder.com/acm/contest/33869/C 来源:牛客网 题意 思路 其实只需要判断有没有素数即可,因为最少的染色策略是让所有的素数的颜色相 ...

最新文章

  1. angularjs1访问子组件_vue 组件通信看这篇就够了(12种通信方式)
  2. python调用exe程序 传入参数_关于使用c#调用python脚本文件,脚本文件需要传递参数...
  3. Codeforces Round #632 (Div. 2) C. Eugene and an array 思维 + 前缀和
  4. 最优化学习笔记(三)最速下降法
  5. 为什么NTFS删除超过4G大文件或数据库文件后FILE RECORD大小表现为0
  6. svn mysql_SVN使用MySQL验证用户名密码(HTTP)
  7. LeetCode刷题——279. 完全平方数
  8. 【笔记】mac上如何用命令行编译jni
  9. Visual Studio 2019 c#的winform开发,基本操作
  10. 怎么样向云服务器上传文件_怎样把文件上传到云服务器
  11. wincc 脚本 实现计算机重启,安装WINCC过程中提示需要重启电脑,请问如何解决?-工业支持中心-西门子中国...
  12. 高德 android 百度转高德,记一次百度和高德经纬度互转(不是你想的那样)
  13. 本地Web服务器环境-Wampserver下载
  14. 用C语言实现:输入某年某月某日,判断这一天是这一年的第几天
  15. 致电电信索要公网ip地址,如何判断自己属于公网ip地址
  16. 认识kata-containers
  17. python读取与保存图片的exif信息
  18. 小米java开发面经2022(3面offer)
  19. 苹果风格ui设计_重新设计苹果音乐应用程序ui ux案例研究
  20. 出货量第一的三星为何在手机AI芯片竞争中落后华为和苹果?

热门文章

  1. 我协会相关负责人在湖北拜访中日产业园
  2. FME转换器 测试(Tester and TestFilter)
  3. 微信小程序问题归纳(一)
  4. 魔力耳朵首创趣味学习“四部曲”,让孩子主动开口,自信演讲
  5. ABAP 获取状态的两个函数 STATUS_TEXT_EDIT 和 STATUS_READ 的简单介绍
  6. FME转换CAD填充块文件为SHP,并正确显示颜色符号
  7. 最新!彻底颠覆传统Office,微软发布神器Copilot~ 网友:世界变得太快了,有点跟不上 !...
  8. 【蛋糕商城】(一)使用HBuliderX搭建uni-app项目
  9. C语言的memcpy和memmove
  10. 入门opencv安装和读取图片