1015 德才论 (25分)【Java题解】

这篇博客探讨了在解决「德才论」问题时,使用Java类数组和Array.sort(),以及ArrayList容器导致的超时问题,并通过对比发现C++在处理此问题时效率也接近超时。博主分析了使用不同数据结构和语言对算法性能的影响。
摘要由CSDN通过智能技术生成

 题解

首先说明这题用java来做会超时T_T ,今天用java 类数组+Array.sort()敲了一套代码,发现会超时,然后看网上是用ArrayList 容器 我就把 数组改成容器来做 ,发现还是超时,最后用了C++来做,好家伙,C++的测试点4也快超时 怪不得java总是超时。不过我也发现这容器还是比较快一点的。

思路:

1.对人 标记分类    (隐藏的 一级分类)

2.用compare() 多级排序  ,其对象带入sort中。

 

 

#include <bits/stdc++.h>
using namespace std;
#define _for(a,b) for(i=a;i<b;i++)

struct student{
    int id;
    int virtue;
    int talent;
    int Class;
};
struct student *s;

int L,H;
bool cmp(student a,student b){
   if(a.Class!=b.Class)return a.Class<b.Class;
   else{
        if((a.talent+a.virtue)==(b.talent+b.virtue))
        {
            if(a.virtue==b.virtue)return a.id<b.id;
            return a.virtue>b.virtue;
        }
        return (a.talent+a.virtue)>(b.talent+b.virtue);
   }
}

int main(){
    int N,i,ct;
    cin>>N>>L>>H;
    ct=N;
    s=new student[N];
    _for(0,N){
        cin>>s[i].id>>s[i].virtue>>s[i].talent;
        if(s[i].talent<L||s[i].virtue<L){s[i].Class=5;ct--;}
        
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值