首页 > 学院 > 开发设计 > 正文

codevs 1361_知识排名_模拟

2019-11-14 09:53:48
字体:
来源:转载
供稿:网友

题目描述

小牛举办了一年一届的知识竞赛,小牛 RK 也参与其中,知识竞赛

规则是一题只有错或对两种情况,且对标志为 1,错标志为 0。每题

的分值为该题错误的人数,小牛 RK 已经知道了每个人的各个题目的

情况,他想让你求出他的总排名。(此表格规定,第一行的序号为 1,

以此类推)。


思路

直接暴力枚举,记录每一题有多少人对,然后按题目要求给每个人加分,最后排序输出就可以了 O(n^2)


#include <stdio.h>#include <algorithm>using namespace std;int a[1001][1001];struct arr{ int l,y;};arr f[1001];int cam(arr a,arr b){ return a.y>b.y||(a.y==b.y&&a.l<b.l);}int main(){ int x,n,m; scanf("%d%d%d",&x,&n,&m); for (int i=1;i<=n;i++) for (int j=1;j<=m;j++) scanf("%d",&a[i][j]); for (int i=1;i<=n;i++) f[i].l=i; for (int i=1;i<=m;i++) { int t=0; for (int j=1;j<=n;j++) { if (a[j][i]==0) t++; } for (int j=1;j<=n;j++) if (a[j][i]==1) f[j].y+=t; } sort(f+1,f+n+1,cam); for (int i=1;i<=n;i++) if (f[i].l==x) PRintf("%d/n",i);}
上一篇:Latex-下划线

下一篇:4th Feb 刷题笔记

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表