洛谷P5759题解
本文摘自本人洛谷博客,原文章地址:https://www.luogu.com.cn/blog/cjtb666anran/solution-p5759
\]
选手编号依次为: \(1,2...N\) ( \(N\) 为参赛总人数)。
设 \(x_{ij}\) 分别表示编号为 \(i\) 的选手第 \(j\) 项竞赛的成绩 \((1 \le i \le N\),\(1 \le j \le 8)\) 。其它指标如下:
第 \(j\) 项竞赛的平均分 $ avg_j = \frac{1}{N} \sum_{i=1}^N x_{ij} $,(\(1 \le j \le 8)\)。
选手 \(i\) 的总分 \(sumx_i = \sum_{j=1}^8 x_{ij}\),(\(1 \le i \le N\))。
选手 \(i\) 第 \(j\) 项竞赛的位置分
zm[j][i]+=abs(zn[k][i]-f[i]);
zm[j][i]=(zn[j][i]-f[i])/(zm[j][i]/n);
a[i].zf+=zm[i][j];
a[i].zf+=double(0.8*zm[i][j]);
位置分的计算
- 选手 \(i\) 的总位置分 \(sumy_i = \sum_{k=1}^3 y_{jk} + 0.8 \sum_{k=4}^8 y_{jk}\),\((1 \le i \le N)\)。
a[i].sum+=zn[i][j];
总位置分的计算
所以,一开始我用暴力DFS跑
突然60分有了(毕竟数据小)
所以可以得出 AC 算法
上代码!!!
其实我也是借鉴了题解区的大佬的算法,非常谔谔
#include<bits/stdc++.h>
#define LL long long //十年OI一场空,不开long long见祖宗
#define H 101
using namespace std;
#ifdef ONLINE_JUDGE
static char buf[1000000],*p1=buf,*p2=buf;
#define getchar() p1==p2&&(p2=(p1=buf)+fread(buf,1,1000000,stdin),p1==p2)?EOF:*p1++
#endif
inline int read() //快读
{
char ch=getchar();
long long f=1,res=0;
while(ch<'0'||ch>'9')
{
if(ch=='-') f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9')
res=(res<<1)+(res<<3)+ch-48,ch=getchar();
return res*f;
}
const int N=1e4+1;//其实就是10001
struct Sama{
int id;
double zf,sum;
};
Sama a[N];
LL n;
int zn[N][H];
double zm[N][H],f[H];
bool cmp(Sama a1,Sama a2){//简简单单的排序
if(a1.zf!=a2.zf){
return a1.zf>a2.zf;
}
else if(a1.sum!=a2.sum){
return a1.sum>a2.sum;
}
return a1.id<a2.id;
}
int main(){
ios::sync_with_stdio(false);
n=read();
for(int i=1;i<=n;i++){
for(int j=1;j<=8;j++){
zn[i][j]=read();
}
}
for(int i=1;i<=8;i++){
for(int j=1;j<=n;j++){
f[i]+=zn[j][i];
}
f[i]=f[i]/n;
}
for(int i=1;i<=8;i++){
for(int j=1;j<=n;j++){
for(int k=1;k<=n;k++){
zm[j][i]+=abs(zn[k][i]-f[i]); //计算前缀和
}
if(zm[j][i]!=0){
zm[j][i]=(zn[j][i]-f[i])/(zm[j][i]/n);
}
}
}
for(int i=1;i<=n;i++){
a[i].id=i;
a[i].sum=0;
for(int j=1;j<=3;j++){
a[i].zf+=zm[i][j];
}
for(int j=4;j<=8;j++){
a[i].zf+=double(0.8*zm[i][j]);
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=8;j++){
a[i].sum+=zn[i][j];
}
}
sort(a+1,a+n+1,cmp); //快排
for(int i=1;i<=n;i++){
cout<<a[i].id<<endl;
}
return 0;
}
洛谷P5759题解的更多相关文章
- [洛谷P3376题解]网络流(最大流)的实现算法讲解与代码
[洛谷P3376题解]网络流(最大流)的实现算法讲解与代码 更坏的阅读体验 定义 对于给定的一个网络,有向图中每个的边权表示可以通过的最大流量.假设出发点S水流无限大,求水流到终点T后的最大流量. 起 ...
- 关于三目运算符与if语句的效率与洛谷P2704题解
题目描述 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用“H” 表示),也可能是平原(用“P”表示),如下图.在每一格平原地形上最 ...
- c++并查集配合STL MAP的实现(洛谷P2814题解)
不会并查集的话请将此文与我以前写的并查集一同食用. 原题来自洛谷 原题 文字稿在此: 题目背景 现代的人对于本家族血统越来越感兴趣. 题目描述 给出充足的父子关系,请你编写程序找到某个人的最早的祖先. ...
- 洛谷P2607题解
想要深入学习树形DP,请点击我的博客. 本题的DP模型同 P1352 没有上司的舞会.本题的难点在于如何把基环树DP转化为普通的树上DP. 考虑断边和换根.先找到其中的一个环,在上面随意取两个点, 断 ...
- 【洛谷】题解 P1056 【排座椅】
题目链接 因为题目说输入保证会交头接耳的同学前后相邻或者左右相邻,所以一对同学要分开有且只有一条唯一的通道才能把他们分开. 于是可以吧这条通道累加到一个数组里面.应为题目要求纵列的通道和横列的通道条数 ...
- 洛谷P3572题解
这道题实在是一道 毒瘤 题,太坑爹了.那个写 \(deque\) 的题解亲测只有80分,原因 不言而明 ,这道题居然 丧心病狂 到 卡STL . 好了,不吐槽了,进入正题 题目分析: 这是一道十分 简 ...
- [洛谷P1972][题解][SDOI2009]HH的项链
别碰我! 自己还是太蒟了…… 看了好久,最后抄参考题解打出来的…… 前面的可能影响后面的,所以按照询问右端点排序 这时候维护一个前缀和数组就可以了, 那么问题又来了,去重? 可以这样,从前往后枚举,如 ...
- 【洛谷P1119题解】灾后重建——(floyd)
这道题告诉我,背的掉板子并不能解决一切问题,理解思想才是关键,比如不看题解,我确实想不清楚这题是弗洛伊德求最短路 (我不该自不量力的说我会弗洛伊德了我错了做人果然要谦虚) 灾后重建 题目背景 B地区在 ...
- 洛谷P5691题解
题面 本人用的是暴力分类讨论 + \(unordered\_map\) 存储,与所有的题解都不同. 因为 \(n \leq 6\) ,非常的小,并且我不想写 DFS,所以直接暴力分类讨论 \(n=1, ...
随机推荐
- 前端React项目遇到【Uncaught SyntaxError: Unexpected token '<'】错误的解决方式
问题描述 前端部署好项目后,打开相应的页面显示一片空白,打开console显示 问题排查思路 理解问题的本质 出现这个错误的原因是浏览器期望得到js文件,但页面却返回了html文件,如图中的js文件点 ...
- Word 分栏符怎么使用
如果你使用栏来设置文档格式(如在某些新闻稿布局中),则文本将自动从一栏排列到另一栏.可以插入你自己的分栏符,以更好地控制文档格式. 单击"布局"选项卡--"页面设置&qu ...
- Vue 内联样式
前置说明 Vue 绑定HTML 全局属性style,可以动态地改变属性值.这里就不讲内联样式的基础了,具体轻查看官网文档 Class 与 Style 绑定. 主要分为以下两个步骤进行: v-bind ...
- 在 Linux 安装 Java 的流程
前言 安装流程一共为 4 个步骤,分为下载.解压.配置.检查. 下载 Oracle 官网下载 JDK. 解压 上传至 Linux 中(可使用宝塔面板上传),解压安装包: ubuntu@VM-0-6-u ...
- js函数( 普通函数、箭头函数 ) 内部this的指向
- 普通函数 | 具名普通函数.匿名普通函数,在不作为对象的属性值的情况下,其内部的 this 总是指向代码运行环境下的全局对象 ( 例如,浏览器中的 window ). 示例: (functio ...
- KingbaseES 如何查看应用执行的SQL的执行计划
通过explain ,我们可以获取特定SQL 的执行计划.但对于同一条SQL,不同的变量.不同的系统负荷,其执行计划可能不同.我们要如何取得SQL执行时间点的执行计划?KingbaseES 提供了 a ...
- 从EDR的火热看安全产品的发展
从EDR的火热看安全产品的发展 2021年4月8日23:13 当开始写这篇博客时,外面正是护网进行得如火如荼的时候.作为一个产品经理,在吃瓜的同时,也在思考着安全产品的发展.这几年一些看得到的变化在深 ...
- MySQL数据备份 mysqldump 详解
MySQL数据备份流程 1 打开cmd窗口 通过命令进行数据备份与恢复: 需要在Windows的命令行窗口中进行: l 开始菜单,在运行中输入cmd回车: l 或者win+R,然后输入cmd回车,即可 ...
- KMP&Z函数详解
KMP 一些简单的定义: 真前缀:不是整个字符串的前缀 真后缀:不是整个字符串的后缀 当然不可能这么简单的,来个重要的定义 前缀函数: 给定一个长度为\(n\)的字符串\(s\),其 \(前缀函数\) ...
- 如何修改 Kubernetes 节点 IP 地址
转载自:https://www.qikqiak.com/post/how-to-change-k8s-node-ip/ 昨天网络环境出了点问题,本地的虚拟机搭建的 Kubernetes 环境没有固定 ...