zoukankan      html  css  js  c++  java
  • PAT甲级 1075 PAT Judge (25分)

    //注意:排序的是满分解题数,而不是解题数。
    #include <cstdio>
    #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int maxn = 200005; typedef long long ll; struct st{ int num,k[6],total_grade,total_q,order,t;//t代表解决题数,total_q代表完美解题数 }s[100005]; bool cmp(st p,st q) {//排序 if(p.total_grade != q.total_grade) return p.total_grade > q.total_grade; else if(p.total_q != q.total_q) return p.total_q > q.total_q; else return p.num < q.num; } int main() { int n,k,kk[6],m; scanf("%d%d%d",&n,&k,&m); for(int i = 1; i <= k; i++) scanf("%d",&kk[i]);//每科满分 int sno,num,grade; for(int i = 1; i <= n; i++) { s[i].num = i; s[i].total_grade = 0; s[i].total_q = 0; s[i].t = -1; memset(s[i].k,-1,sizeof(s[i].k)); } for(int i = 1; i <= m; i++) { scanf("%d%d%d",&sno,&num,&grade); if(grade >=0 ) { s[sno].t = 1; } else grade = 0; s[sno].k[num] = max(s[sno].k[num],grade); } for(int i = 1; i <= n; i++) { for(int j = 1; j <= k; j++) { if(s[i].k[j] != -1) s[i].total_grade += s[i].k[j]; if(s[i].k[j] ==kk[j]) s[i].total_q++; } } sort(s+1,s+1+n,cmp); for(int i = 1; i <= n; i++) { if(s[i].total_grade == s[i-1].total_grade) s[i].order = s[i-1].order; else s[i].order = i; } /*for(int i = 1; i <= n; i++) printf("%d ",s[i].t); printf(" ");*/ for(int i = 1; i <= n; i++) { if(s[i].t == 1) { printf("%d %05d %d",s[i].order,s[i].num,s[i].total_grade); for(int j = 1; j <= k; j++) { if(s[i].k[j] == -1) printf(" -"); else printf(" %d",s[i].k[j]); } printf(" "); } } return 0; }
  • 相关阅读:
    root用户javac可以执行sudo后command not found问题
    机器学习 KNN算法实现 (鸢尾花)
    机器学习 KNN分类算法简单介绍+数据集拆分
    机器学习的一般流程
    机器学习算法的性能评价
    Opencv 自带函数(Haar)的人脸检测
    Opencv 的基础认识
    labelme 的学习
    天梯赛总结CCCC
    VScode配置c,c++编译环境
  • 原文地址:https://www.cnblogs.com/LLLAIH/p/12258389.html
Copyright © 2011-2022 走看看