http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3705

题意:主要是分值计算要注意以下几点:

(1) 在MOJ上解出的题,如果是 MaoMao Selection  则加2.5分,如果是来自 Old Surgeon Contest则加1.5分,除了这两种情况外,如果解出的题号是素数,加1分,如果都不符合上述情况则加0.3分。

(2)参加 ACM/ICPC 的队伍,一等奖加36分,二等奖加27,三等奖加18分,其余不加分。(ps:一个队伍可能参加多次比赛)。

(3)有rating值的按照得分公式:Pts = max(0, (r - 1200) / 100) * 1.5,(注意公式中的类型要转换成double),其中r代表第三高的rating值。

(4)如果是女生的话加33分。

最后的输出要求按分值高低输出前M个人的名字和分值,如果分值相同则按名字的字典序输出。

 #include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <math.h>
#include <map>
#include <algorithm>
using namespace std;
const int N=;
int f[N],vR[N],vS[N],p[N];
void is_prime( )
{
f[] = ;
f[] = ;
for (int i = ; i < N; i ++)
{
f[i] = i%;
}
for (int i = ; i <= ; i ++)
{
if (f[i])
{
for (int j = *i; j < N; j += i)
f[j] = ;
}
}
}
struct node
{
string name;
double score;
friend bool operator < (const node a,const node b)
{
if (a.score == b.score)//分值相同时按名字排序
{
return a.name < b.name;
}
return a.score > b.score;//分值不同时从高到低排序 }
} a[];
int main()
{
int t;
scanf("%d",&t);
is_prime();//素数打表
while(t--)
{
for (int i = ; i < ; i++)
a[i].score = ;
map<string,double>Map;
memset(vR,,sizeof(vR));
memset(vS,,sizeof(vS));
int n,m,x;
int R,S;
scanf("%d%d",&n,&m);
scanf("%d",&R);
for (int i = ; i < R; i++)
{
scanf("%d",&x);
vR[x] = ;//标记第一种题
}
scanf("%d",&S);
for (int j = ; j < S; j++)
{
scanf("%d",&x);
vS[x] = ;//标记第二种题
}
int Q;
scanf("%d",&Q);
while(Q--)
{
int rank1;
string name;
cin>>name>>rank1;
if (rank1==)//根据队伍的名次加分
Map[name] += ;
else if (rank1==)
Map[name] += ;
else if (rank1==)
Map[name] += ;
else
Map[name] += ;
}
for (int i = ; i < n; i++)
{
int num1,num2;
string pname,tname,sex;
cin>>pname>>tname>>sex>>num1>>num2;
a[i].name = pname;
a[i].score+=Map[tname];
if (sex=="F")//女生加分
a[i].score+=;
for (int j = ; j < num1; j++)
{
scanf("%d",&x);
if(vR[x])//做的第一种题
a[i].score+=2.5;
else if (vS[x])//做的第二种题
a[i].score+=1.5;
else
{
if(f[x])//题号为素数
a[i].score+=1.0;
else
a[i].score+=0.3;
}
}
memset(p,,sizeof(p));
for (int j = ; j < num2; j++)
scanf("%d",&p[j]);//rating值
if (num2 >= )
{
sort(p,p+num2);//rating排序,由第三高的rating值带人公式计算分值
double temp = max(0.0,(1.0*p[num2-]-1200.0)/100.0)*1.5;
a[i].score+=temp;
}
}
sort(a,a+n);//按输出要求排序
for (int i = ; i < m; i++)
{
cout<<a[i].name;
printf(" %.3f\n",a[i].score);
}
}
return ;
}

Applications(模拟)的更多相关文章

  1. ZOJ 3705 Applications 模拟

    #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include< ...

  2. ZOJ - 3705 Applications 【模拟】

    题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3705 题意 给出N个队员 然后一个教练要从中选择 M名队员 要选 ...

  3. 在PC上测试移动端网站和模拟手机浏览器的5大方

    查了很多资料,尝试了大部分方法,下面将这一天的努力总结下分享给大家,也让大家免去看那么多文章,以下介绍的方法,都是本人亲自测试成功的方法,测试环境winxp. 一.Chrome*浏览器 chrome模 ...

  4. 整理分享C#通过user32.dll模拟物理按键操作的代码

    对系统模拟按键方面的知识和按键映射代码做了一下梳理,在这里分享出来,适用于开发自动操作工具和游戏外挂. 主代码: public const int KEYEVENTF_EXTENDEDKEY = 0x ...

  5. POJ 1016 模拟字符串

    Numbers That Count Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 20396   Accepted: 68 ...

  6. ns3模拟无线Ad hoc 网络通信

    Ad hoc网络 Ad hoc网是一种多跳的.无中心的.自组织无线网络,又称为多跳网(Multi-hop Network).无基础设施网(Infrastructureless Network)或自组织 ...

  7. Codeforces Round #366 (Div. 2) C 模拟queue

    C. Thor time limit per test 2 seconds memory limit per test 256 megabytes input standard input outpu ...

  8. splinter python浏览器自动化操作,模拟浏览器的行为

    Splinter可以非常棒的模拟浏览器的行为,Splinter提供了丰富的API,可以获取页面的信息判断当前的行为所产生的结果   最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有 ...

  9. java模拟浏览器包selenium整合了htmlunit,火狐浏览器,IE浏览器,opare浏览器驱

    //如果网页源码中有些内容是js渲染过来的,那你通过HttpClient直接取肯定取不到,但是这些数据一般都是通过异步请求传过来的(一般都是通过ajax的get或者post方式).那么你可以通过火狐浏 ...

随机推荐

  1. CQOI2007 涂色 paint (区间dp)

    听说这道题是当年省选题 于是兴致勃勃拿来做了做 至于如何想到思路... 事实上没想象中那么简单... 脑阔挺疼的... (一开始都没看出来是区间dp) 想到可以区间dp,然后就似乎没啥大问题 枚举区间 ...

  2. <MyBatis>入门四 传入的参数处理

    1.单个参数 传入单个参数时,mapper文件中 #{}里可以写任意值 /** * 传入单个参数 */ Employee getEmpById(Integer id); <!--单个参数 #{} ...

  3. Centos6文本安装教程

    Centos6.4文本方式安装 虚拟机中文本安装(内存512),内存大于512默认为图形安装 1.选择安装媒体,在vbox中选skip跳过 2.选择安装语言(chinese(simplifired)简 ...

  4. ch12 GUI

    <Head First Java 2nd Edition> 摘录 JFrame 代表屏幕上的一个窗口,可以把 buttons, checkboxes, test fields 等等界面相关 ...

  5. 使用nfs3将hdfs挂载到本地或远程目录(非kerberos适用)

    最基本的配置方法,aix.kerberos等的操作详见http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/Hdf ...

  6. java,有用的代码片段

    在我们写程序的过程中,往往会经常遇到一些常见的功能.而这些功能或效果往往也是相似的,解决方案也相似.下面是我在写代码的过程中总结的一些有用的代码片段. 1.在多线程环境中操作同一个Collection ...

  7. 码云私人代码 SSH 设置----https://blog.csdn.net/kkaazz/article/details/78667573

    码云私人代码 SSH 设置 https://blog.csdn.net/kkaazz/article/details/78667573

  8. noip模拟赛 算

    [问题背景]zhx 帮他妹子做数学题.[问题描述]求: 如 N=3, M=3, 这个值为 1^1+1^2+1^3+2^1+2^2+2^3+3^1+3^2+3^3=56. [输入格式]仅一行, 包含两个 ...

  9. java中static学习总结

    <<java编程思想>>: 1.static方法就是没有this的方法. 2.在static方法内部非静态方法. 3.在没有创建对象的前提下,可以通过类本身来调用static修 ...

  10. Nginx 重写规则指南1

    作者:运维生存时间 - 默北 链接:www.ttlsa.com/nginx/nginx-rewriting-rules-guide/ 当运维遇到要重写情况时,往往是要程序员把重写规则写好后,发给你,你 ...