【t043】成绩查询
Time Limit: 1 second
Memory Limit: 128 MB
【问题描述】
说起测试计算机的软件,排在第一位的就应当是SuperPi 了。它不但能良好的体现机器的整体水平,而且还很小巧,更令人惊讶
的是它是一款绿色软件!SuperPi 的成绩是用毫秒计算的,如果时间越短说明成绩越好。大家都经常会把自己的SuperPi 成绩发
布到网上,以和别人比较,当然也是为了炫耀自己的机器。这样,有些网站就要对大家的成绩进行排序并输出,另外一些技术比
较完善的网站就会提供成绩查询的功能。现在,你就要完成这样一个查询程序。
现在提供每个人的用户名、成绩,需要你将成绩排序并根据用户输入的排名输出对应的用户名和成绩。
【输入格式】
第一行是一个正整数n,表示用户的个数。
接下来的n 行每行有一个字符串和一个小数,第i 行是编号为i-1 的人的信息,中间用一个空格分隔,字符串代表用户名(只能由大
、小写字母,数字和下划线组成),小数代表该人的成绩,每行的首尾不会有多余的空格。
然后是一个正整数m,表示查询的次数。
接下来m 行是每一次查询的信息,每行一个实数k。
【输出格式】
对应每一个数k,你都要输出用时为k 的人的用户名及排名(一个正整数),中间用一个空格分隔,如果没有符合条件的人的话就输
出”No Such User”(没有两边的引号)。 【数据范围】 对于10%数据,n≤100,m≤100。
对于30%数据,n≤100000,m≤100。
对于100%数据,n≤100000,m≤1000。
对于100%数据,每个人的成绩各不相同且都小于10^9,有效位数最多为9 位,小数点后最多三位;每个人的用户名都不相同;k 的范
围和每个人成绩的范围相同;每个人的用户名长度不超过10 个字节。
【说明】
输入的成绩和查询的成绩只要值相同就算相等,如123.1 与123.100 是同一个数。
Sample Input
5
sqybi 123.345
Core2_Duo 20.203
Vista123 100
o 100.001
0987654321 987654321
2
100.0
123.346
Sample Output
Vista123 2
No Such User
【题目链接】:http://noi.qz5z.com/viewtask.asp?id=t043
【题解】
把输入的数据按照成绩升序排一下就好
1.200
和1.20
直接用==号比较就可以了;
在询问的时候写个二分就好;
【完整代码】
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <set>
#include <map>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
#include <vector>
#include <stack>
#include <string>
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pp push_back
#define fi first
#define se second
using namespace std;
typedef pair<int,int> pii;
typedef pair<LL,LL> pll;
void rel(LL &r)
{
r = 0;
char t = getchar();
while (!isdigit(t) && t!='-') t = getchar();
LL sign = 1;
if (t == '-')sign = -1;
while (!isdigit(t)) t = getchar();
while (isdigit(t)) r = r * 10 + t - '0', t = getchar();
r = r*sign;
}
void rei(int &r)
{
r = 0;
char t = getchar();
while (!isdigit(t)&&t!='-') t = getchar();
int sign = 1;
if (t == '-')sign = -1;
while (!isdigit(t)) t = getchar();
while (isdigit(t)) r = r * 10 + t - '0', t = getchar();
r = r*sign;
}
//const int MAXN = x;
const int dx[5] = {0,1,-1,0,0};
const int dy[5] = {0,0,0,-1,1};
const double pi = acos(-1.0);
const int MAXN = 1e5+100;
struct abc
{
char s[20];
double t;
};
int n,m;
abc a[MAXN];
bool cmp(abc a,abc b)
{
return a.t < b.t;
}
int main()
{
//freopen("F:\\rush.txt","r",stdin);
rei(n);
rep1(i,1,n)
scanf("%s%lf",a[i].s,&a[i].t);
sort(a+1,a+1+n,cmp);
rei(m);
rep1(i,1,m)
{
double x;
scanf("%lf",&x);
int l = 1,r = n,ans = -1,mid;
while (l <= r)
{
mid = (l+r)>>1;
if (a[mid].t==x)
{
ans = mid;
break;
}
else
if (a[mid].t<x)
l = mid+1;
else
r = mid-1;
}
if (ans == -1)
puts("No Such User");
else
printf("%s %d\n",a[mid].s,mid);
}
return 0;
}
【t043】成绩查询的更多相关文章
- PHP中CURL技术模拟登陆抓取网站信息,用与微信公众平台成绩查询
伴随微信的红火,微信公众平台成为许多开发者的下一个目标.笔者本身对于这种新鲜事物没有如此多的吸引力.但是最近有朋友帮忙开发微信公众平台中一个成绩查询的功能.于是便在空余时间研究了一番. 主要的实现步骤 ...
- 暑假闲着没事第一弹:基于Django的长江大学教务处成绩查询系统
本篇文章涉及到的知识点有:Python爬虫,MySQL数据库,html/css/js基础,selenium和phantomjs基础,MVC设计模式,ORM(对象关系映射)框架,django框架(Pyt ...
- C语言 · 成绩查询系统
抱歉,昨天忘了往博客上更新,今天补上. 成绩查询系统 分值: 21 数学老师小y 想写一个成绩查询系统,包含如下指令: insert [name] [score],向系统中插入一条信息,表示名字为na ...
- C语言程序设计#成绩查询系统
学生成绩管理系统 [注释]:请点赞,好人一生平[yi]安[wo]. #codeblocks程序下编写 #include<stdio.h>#include<stdlib.h>// ...
- [WUSTCTF2020]颜值成绩查询-1
分享下自己在完成[WUSTCTF2020]颜值成绩查询-1关卡的手工过程和自动化脚本. 1.通过payload:1,payload:1 ,payload:1 or 1=1--+,进行判断是否存在注入, ...
- 数据结构_成绩查询_cjcx
问题描述 录入 n 个学生的成绩,并查询.★数据输入第一行输入包括 n. m(1<=n<=50,000,1<=m<=100,000)两个数字.接下来 n 行,每行包含名字和成绩 ...
- Oracle数据库按属性成绩查询
create or replace function bb return nvarchar2as-----------自定义游标类型type class_student is record( snam ...
- 关于学生成绩查询的几个SQL语句
数据库有三个字段,名字.学科.成绩,如图 1. 找出每科成绩最高的学生的名字与分数 2.找出总分最高的学生名字与总分 3.找出三科成绩均大于80分的学生
- 在Android上模拟登录广工正方教务系统查询成绩
这是在博客园里开博以来写的第一篇博客. 因为之前看过很多人都有发过关于模拟登录正方软件获取数据的文章,自己觉得挺好玩的便也去动手一做,开始还以为挺难的,但实际做起来还蛮简单的,当然其中还有些小插曲. ...
随机推荐
- POJ——T 3250 Bad Hair Day
http://poj.org/problem?id=3250 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 19619 ...
- C++异常实现与longjmp, setjmp,栈指针EBP, Active Record
这篇讲的不错: http://blog.csdn.net/smstong/article/details/50728022 首先Active Record 然后EBP,ESP等指针 2 通过setjm ...
- 怎样扩展Chromium各层的接口
加入新功能时,可能须要添加各层的接口,接口怎样加?必定须要向Chromium的原则看齐. 首先Chromium的模块设计遵循依赖倒置原则,上层模块依赖于低层模块.低层模块不会依赖上层模块的实现. 再者 ...
- Oracle Sqlplus中上下键出现^[[A乱码问题
安装rlwrap 下载:http://utopia.knoware.nl/~hlub/uck/rlwrap/ 或者 百度云盘:http://pan.baidu.com/s/1ntM8YXr 须要先安 ...
- Dcloud课程8 开心一刻应用如何实现
Dcloud课程8 开心一刻应用如何实现 一.总结 一句话总结:app就是远程调用接口获得数据,我们在后台要做的,就是写一个个让页面获得接口的数据.这里用的是公共笑话接口. 1.ajax返回给页面的h ...
- C# Find() 与 FindAll()方法的使用
Find() :检索与指定匹配的第一个元素 FindAll() : 检索与指定匹配的所有元素 如:List<string> strList=new List<string&g ...
- gomail发送附件
采用github.com/go-gomail/gomail/ 的邮件功能,可以发送附件 以及html文档,下面是其给出的demo,测试通过. package main //cmd: go get go ...
- Reentrant 可重入解释
作者:知乎用户链接:https://www.zhihu.com/question/37168009/answer/88086943来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- node 内存溢出
遇到这个问题的人可以更快解决 再复制写一篇 利于百度搜索 坑爹的node 内存溢出 react开发项目 安装一个插件依赖 ,然后就报错了 报错如下(自己的没有截图出来 这是从别人的截图---报错基本 ...
- zookeeper 配置文件说明(zoo.cfg)
clientPort # 客户端连接server的port,即对外服务port,一般设置为2181. dataDir # 存储快照文件snapshot的文件夹. 默认情况下.事 ...