【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最近在研究欧几里得算法,不会的同学可以去看下课件以及代码…… 现在她想到了一个新 ...
随机推荐
- C语言 - strcpy和strncpy的编程实现及总结
一.字符串的strcpy与strncpy函数 1.编程实现strcpy函数(笔试很容易考到) 要求: 原型:char *stpcpy(char *strDest,char *strSrc); 头文件: ...
- Binding 指令实现双向数据绑定
代码 #方法一:ng-bind的使用 #方法二:{{}}插值表达式的使用 <!doctype html> <html> <head> <meta charse ...
- Zookeeper入门(七)之Java连接Zookeeper
Java操作Zookeeper很简单,但是前提要把包导对. 关于Zookeeper的Linux环境搭建可以参考我的这篇博客:Linux环境下Zookeeper安装 下面进入正题: 一.导入依赖 < ...
- 在Linux上安装ipmitool
https://blog.csdn.net/bnanoou/article/details/43985839
- Java 8:用Stream来循环集合
本文由 ImportNew - 进林 翻译自 deadcoderising.欢迎加入翻译小组.转载请见文末要求. 正如我之前所写的,Java 8中的新功能特性改变了游戏规则.对Java开发者来说这是一 ...
- Kotlin 1 新运算符
新运算符: “..” ,"in ","!in" ,"downto","step"注意: 1. 关系运算符的优先级低于算术 ...
- wordpress 更新时需要FTP 服务器账户密码的解决方法
首先进入 apache下的wordpress 的目录下 (这是apache服务器默认安装的路径) cd /var/www 接着,给html整个文件夹进行赋值权限,如果不赋予权限 更新的时候会报权限不足 ...
- WikiData Processing
WikiData Processing Data Accessing To download latest-all.json.bz2 on the page https://dumps.wikimed ...
- Git入门之常用命令(转载阮一峰老师)
流程图 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓 ...
- Java String.Format() 方法及参数说明
转自:https://blueram.iteye.com/blog/441683 JDK1.5中,String类新增了一个很有用的静态方法String.format():format(Locale l ...