【6.18校内test】T2分数线划定
这道题也不是什么难题,思路一带而过吧:
SOLUTION:
First.输入n,m,计算m*1.5的值,接着输入编号和成绩,然后我的做法是在输入编号成绩之后,开一个101大小的数组来记录某个分数段的人数(因为分数是0~100所以才敢这么干qwq大了就怂了)。
Second.使用最简单好用的sort进行排序,按照成绩从高到低排,如果成绩相同,编号小的在前面。
Third.进行分数线划定,这里喜欢用while(不会用for写这个的说),首先我们先选择恰为计划录取人数的150%(下取整)的人数,然后要注意的是每选择一个人就把这个人所代表的分数的d数组--;
然后计算到第m个人时,如果第m个人所对应的d数组不为0,那么说明还有相同分数的没有被选上,因此用当前记录到的cnt+=d[p[cnt].s];
Last.输出(这个不必多说)
自我感觉今天考场上写的代码比洛谷上交的思路要好(至少思路清晰)
附代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath> using namespace std; int n,m,cnt;
int d[];
struct node {
int k,s;
}p[]; bool cmp(node x,node y){
if(x.s==y.s) return x.k<y.k;
return x.s>y.s;
} int main(){
scanf("%d %d",&n,&m);
m*=1.5;
for(int i=;i<=n;i++)
scanf("%d %d",&p[i].k,&p[i].s),d[p[i].s]++;
sort(p+,p+n+,cmp);
while(cnt<=m){
if(cnt==m) break;
cnt++;
d[p[cnt].s]--;
}
if(d[p[cnt].s]!=) cnt+=d[p[cnt].s];
cout<<p[cnt].s<<" "<<cnt<<endl;
for(int i=;i<=cnt;i++)
cout<<p[i].k<<" "<<p[i].s<<endl;
return ;
}
#include<bits/stdc++.h> using namespace std; int n,m,cnt[],ans,sor,r;
struct node{
int k,s;
}p[]; bool cmp(node x,node y){
if(x.s==y.s) return x.k<y.k;
return x.s>y.s;
} int main(){
scanf("%d %d",&n,&m);
int jh=m*1.5;
for(int i=;i<=n;i++)
scanf("%d %d",&p[i].k,&p[i].s),cnt[p[i].s]++;
sort(p+,p+n+,cmp);
for(int i=;i<=n;i++){
if(ans+>jh) break;
if(p[i-].s==p[i].s) r++;
if(p[i-].s!=p[i].s) r=; ans++;
sor=p[i].s;
}
if(cnt[sor]!=r) ans+=(cnt[sor]-r);
cout<<sor<<" "<<ans<<endl;
for(int i=;i<=ans;i++)
cout<<p[i].k<<" "<<p[i].s<<endl;
}
Luogu Code
end-
【6.18校内test】T2分数线划定的更多相关文章
- NOIP2009分数线划定【B004】
[B004]分数线划定[难度B]—————————————————————————————————————————————————————————————————————————— [题目要求] 世博 ...
- NOIP200902分数线划定
NOIP200902分数线划定 描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试.面试分数线根据 ...
- 2.18比赛(T2,T3留坑)
2.18比赛(T2,T3留坑) pdf版题面 pdf版题解 超越一切(ak) [题目描述] 夏洛可得到一个(h+1)×(w+1)的巧克力,这意味着她横着最多可 以切 h 刀,竖着最多可以切 w 刀 她 ...
- 洛谷——P1068 分数线划定
P1068 分数线划定 题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,A 市对 所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试.面试分数线根 据 ...
- zufeoj 分数线划定
分数线划定 时间限制: 1 Sec 内存限制: 128 MB提交: 13 解决: 7[提交][状态][讨论版] 题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,A ...
- 洛谷 P1068 分数线划定
P1068 分数线划定 题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,A 市对 所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试.面试分数线根 据 ...
- luogu P1068 分数线划定 x
P1068 分数线划定 题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,A 市对 所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试.面试分数线根 据 ...
- [NOIP2009普及]分数线划定 T2 排序
Description 世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试.面试分数线根据计划录取人数的 ...
- 18清明校内测试T2
一道数论好题(math) Time Limit:1000ms Memory Limit:128MB 题目描述 rsy最近在研究欧几里得算法,不会的同学可以去看下课件以及代码…… 现在她想到了一个新 ...
随机推荐
- TTTTTTTTTTTT Codeforces Round #353 (Div. 2) D 平衡二叉树的set模拟 没有很懂
题意:给你n个数字,第一个点作为根节点,然后每次插入一个节点,构建一棵平衡二叉树,并输出插入节点后该节点的父节点的值 #include <iostream> #include <cs ...
- 快速搭建 Serverless 人脸识别离线服务
简介 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute):函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算准 ...
- pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例 脚本专栏 python 1. 用qt designer编写主窗体,窗体类型是MainWindow,空白窗口上一个按钮.并转换成mai ...
- HAOI2018简要题解
大概之后可能会重写一下,写的详细一些? Day 1 T1 简单的背包:DP 分析 可以发现,如果选出了一些数,令这些数的\(\gcd\)为\(d\),那么这些数能且仅能组合成\(\gcd(d,P)\) ...
- TCP连接数配置
一般的设置规则为: 系统最大文件数>可用端口>用户最大文件数 sysctl -a | grep file-max cat /proc/sys/fs/file-max 这表明这台Linux系 ...
- MySQL 获取格林时间
SELECT *FROM 表面WHERE DATE_SUB( NOW( ), INTERVAL 3 MINUTE ) <= CONVERT_TZ( 时间字段, @@SESSION.time_zo ...
- TCP定时器 之 延迟确认定时器
TCP在收到数据段但是无需马上确认时设定,如果在超时时间之内有数据要发送到对端,则确认会随着数据一起发送,即捎带ACK,如果达到超时时间则执行定时器回调立即发送ack: 启动定时器: 延迟确认定时器调 ...
- 数据库-MongoDb
*本文总结下使用Mongodb遇到的问题: 1. 安装完MongoDb后先启动服务端,然后再启动客户端: 直接上图: 注意点:mongod.exe :是用来连接到mongo数据库服务器的,即服务器端. ...
- shell编程常用命令
Linux中常用的命令 #nl filename 使用nl命令打印文件内容并显示行号 #sed '/nw/,$d' filename 使用sed命令删除匹配nw至最后一行的内容 ...
- 鬼知道NOI会不会成为下一个奥数
认真写作文不可能的,这辈子不可能认真写作文的. (月考,期末考,高考即将到达战场,真香警告) 以下应该成为原稿!!! 真.喜欢写感悟,但我感觉我可能把它写的有点商业化,商业化的文章不可能放的,所以我尽 ...