ZOJ 3705 Applications
题意 : 真是一道又臭又长的模拟题啊,不过比赛的时候没看,赛完了补的。
给你N个候选人,让你从中选M个候选人,根据四个大规则来确定每个人的分数,然后选分数前M个人的输出。
1、在MOJ上做过题的根据以下规则来计算加分:
- 如果题目是MAOMAO中的,做对一道加2.5分
- 如果题目是Old Surgeon Contest中的做对一个加1.5分,当然在MAOMAO中没有与Old Surgeon Contest中相同的题
- 如果不是两个中的题,但是题号是素数的做对一道加1分
- 如果不是上边三种情况中的任何一种,做对一道加0.3分。
2、 Marjar学校每年都会举办比赛,如果申请人中有得了奖的,一等奖加36分,二等奖加27分,三等奖加18分,否则加0分。
3、还有在别的OJ上做比赛的,会根据他们做的情况进行加分,如果在那些OJ上做的比赛超过三场的,取第三高的分数进行运算,pts = max(0, (r - 1200) / 100) * 1.5,r 即第三高的分数,然后将pts加入到最后的得分中。
4、如果申请人是女生再多加上33分。
思路 :题意已经说的差不多了,接下来就可以模拟了。注意好细节就可以了。
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <stdlib.h>
#include <algorithm>
#include <string>
#include <map> using namespace std ; struct node
{
string name ;
double score ;
bool operator<(node a)const{
if(score == a.score)
return name < a.name ;
return score > a.score ;
}
}pt[] ; map<string,int>mapp ;
int Mao[] , OSC[] ,ss[]; int isprime(int n)
{
for(int i = ; i*i <= n ; i++)
if(n%i == )
return ;
return ;
}
int main()
{
int T,N,M,R,S,m,Q,n ;
scanf("%d",&T) ;
char nam[] ;
while(T--)
{
memset(Mao,,sizeof(Mao)) ;
memset(OSC,,sizeof(OSC)) ;
memset(ss,,sizeof(ss)) ;
mapp.clear() ;
scanf("%d %d",&N,&M) ;
scanf("%d",&R) ;
for(int i = ; i < R ; i++){scanf("%d",&m) ;Mao[m] = ;}
scanf("%d",&S) ;
for(int i = ; i < S ; i++){scanf("%d",&m) ; OSC[m] = ;}
scanf("%d",&Q) ;
for(int i = ; i < Q ; i++)
{
scanf("%s %d",nam,&m) ;
if(m == ) mapp[nam] += ;
else if(m == ) mapp[nam] += ;
else if(m == ) mapp[nam] += ;
else mapp[nam] += ;
}
char sex ;
for(int i = ; i < N ; i++)
{
cin >> pt[i].name>>nam>>sex>>m>>n ;
if(sex == 'M')
pt[i].score = ;
else pt[i].score = ;
pt[i].score += mapp[nam] ;
int id ;
for(int j = ; j < m ; j++)
{
scanf("%d",&id) ;
if(Mao[id]) pt[i].score += 2.5 ;
else if(OSC[id]) pt[i].score += 1.5 ;
else if(isprime(id)) pt[i].score += ;
else pt[i].score += 0.3 ;
}
for(int j = ; j < n ; j++) scanf("%d",&ss[j]) ;
if(n >= )
{
sort(ss,ss+n) ;
pt[i].score += max(0.0, (ss[n-] - ) / 100.0) * 1.5 ;
}
}
sort(pt,pt+N) ;
for(int i = ; i < M ; i++)
{
cout<<pt[i].name ;
printf(" %.3f\n",pt[i].score) ;
}
}
return ;
}
ZOJ 3705 Applications的更多相关文章
- ZOJ - 3705 Applications 【模拟】
		题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3705 题意 给出N个队员 然后一个教练要从中选择 M名队员 要选 ... 
- ZOJ 3705 Applications 模拟
		#pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include< ... 
- Applications (ZOJ 3705)
		题解:就是题目有点小长而已,可能会不想读题,但是题意蛮好理解的,就是根据条件模拟,计算pts.(送给队友zm. qsh,你们不适合训练了.) #include <iostream> #in ... 
- POJ 2418 ,ZOJ 1899 Hardwood Species - from lanshui_Yang
		Description Hardwoods are the botanical group of trees that have broad leaves, produce a fruit or nu ... 
- Detect the Virus ZOJ - 3430  AC自动机
		One day, Nobita found that his computer is extremely slow. After several hours' work, he finally fou ... 
- ZOJ  People Counting
		第十三届浙江省大学生程序设计竞赛 I 题, 一道模拟题. ZOJ 3944http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=394 ... 
- ZOJ 3686 A Simple Tree Problem
		A Simple Tree Problem Time Limit: 3 Seconds Memory Limit: 65536 KB Given a rooted tree, each no ... 
- Authorization in Cloud Applications using AD Groups
		If you're a developer of a SaaS application that allows business users to create and share content – ... 
- DAC Usage3:Monitor Data-tier Applications
		If you deploy a DAC to a managed instance of the Database Engine, information about the deployed DAC ... 
随机推荐
- SharePoint2013 SharePoint-Hosted 模式 分页方法
			/**分页js插件 var ListPager = new listPaging(); 先调用start方法加载上下文 然后调用dataLoad方法查询第一页数据 需要设置几个属性值 ListPage ... 
- MySQL之事务处理、存储过程
			事务处理 动作 开始事务:start transaction 提交事务:commit 回滚事务:rollback 设置自动提交:set autocommit 1 | 0 autoCommit系统默认是 ... 
- SQL Server 2012 内存管理 (memory management) 改进
			SQL Server 2012 的内存管理和以前的版本相比,有以下的一些变化. 一.内存分配器的变化 SQL Server 2012以前的版本,比如SQL Server 2008 R2等, 有sing ... 
- 递归法绑定文件夹到导航树&在指定文件夹下新建文件夹
			protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request.QueryString[&q ... 
- MongoDB的主从复制和副本集
			mongoDB的两个特性主从复制和副本集,实现了数据的同步备份 一.主从复制 主从复制是一个简单的数据库同步备份的集群技术.例如主服务器宕机了,可以直接使用从服务器,主服务器恢复后在进行同步,保证了业 ... 
- 全面认识网络诊断命令功能与参数——netsh diagnostic命令
			netsh diagnostic是网络诊断命令,主要检测网络连接和服务器连接的状态. 注意:netsh不能在Window2000以下系统中使用.案例1:使用netsh diagnostic命令检 ... 
- oracle 表空间常用语句
			–查询表空间使用情况 SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", ... 
- Appium Android 屏幕滑动
- 2.1 JavaScript应用开发实践指南
			创建交互层 循环 示例代码如下: var people = family, peopleCount = items.length, i; if(peopleCount>0){ for(i=0; ... 
- .net 生成pdf表格
			只需要建一个类文件就搞定了 public class CreatePDF { public static CreatePDF Current { get { return new CreatePDF( ... 
