IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> PAT 1062 Talent and Virtue (25 分),算法笔记注意点有问题 -> 正文阅读

[数据结构与算法]PAT 1062 Talent and Virtue (25 分),算法笔记注意点有问题

算法笔记里的注意点二写错了:cin,cout导致运行超时。
其实不然,我就用了cin,cout来处理,运行也不见超时;
我觉得超时的关键点主要在于算法笔记中直接对结构体进行排序处理,因为频繁地挪动结构体是很耗费时间的;
这点其实也并不是我说的,陈越的数据结构mooc排序章节里有讲到。
处理方法:转为对结构体序号按一定规则进行排序。

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;

const int maxn=100001;
struct person{
	string ID_Number; 
	int Virtue_Grade,Talent_Grade,total,flag;
}P[maxn];
int corP[maxn];
int N,L,H;
int cnt;


bool cmp(int a,int b){
	person A=P[a],B=P[b];
	if(A.flag!=B.flag) 
		return A.flag>B.flag;
	else{
		if(A.total!=B.total) return A.total>B.total;
		else{
			if(A.Virtue_Grade!=B.Virtue_Grade) 
				return A.Virtue_Grade>B.Virtue_Grade;
			else {
				return A.ID_Number<B.ID_Number;
			}
		}
	}
}

int main(void){
	cin >> N>>L>>H;
	string id; 
	int VG,TG;
	
	for(int i=0;i<N;i++){
		corP[i]=i;
	}
	
	for(int i=0;i<N;i++){
		cin >> id >> VG >> TG;
		if(!(VG>=L && TG>=L)) continue;
		P[cnt].ID_Number=id;
		P[cnt].Virtue_Grade=VG;
		P[cnt].Talent_Grade=TG;
		P[cnt].total=VG+TG;
		if(VG>=H && TG>=H){
			P[cnt].flag=3;
		}else if(VG>=H && TG<H){
			P[cnt].flag=2;
		}else if(VG<H && TG<H && VG>=TG){
			P[cnt].flag=1;
		}else{
			P[cnt].flag=0;
		}
		cnt++;
	}
	sort(corP,corP+cnt,cmp);
	cout << cnt <<endl;
	for(int i=0;i<cnt;i++){
		cout << P[corP[i]].ID_Number << " ";
		cout << P[corP[i]].Virtue_Grade << " "<< P[corP[i]].Talent_Grade;
		cout << endl;
	}
	return 0;
}
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-08-12 16:53:24  更:2021-08-12 16:56:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:55:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码