栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

1055 The World‘s Richest (25 point(s))测试点1和2的超时问题

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

1055 The World‘s Richest (25 point(s))测试点1和2的超时问题

        测试点一超时是因为你用了cin,cout,搞得程序很慢,所以以后写pat的题目别用cin,cout,用的时候很爽,改的时候就知道错了,还有不要用scanf输入string,string是c++的,要用cin,所以这题如果名字在结构体用了string定义就要改成char name[10]了,bool cmp的时候就不能用return a.name

        测试点二超时的话,我估计你的方法就是先用一个数组全部存起来,然后在做一个临时数组vector,把符合条件的数据都存在vector里面,然后用完再v.cear,但是,你看看你的sort再在哪里,是不是sort了很多次,所以测试点2才会超时,别问问就是我原来就是这么干的,改成只sort一次,再整一个计数器,要输出多少个就输出多少个就好了;

代码:

#include
#include
#include
#include
#include
using namespace std;
struct node{
	int age;
	char name[10];
	int worth;
};
bool cmp(node a,node b){
	if(a.worth==b.worth&&a.age==b.age){
		return strcmp(a.name,b.name)<0;
	}else if(a.worth==b.worth){
		return a.ageb.worth;
	}
} 
int main(){
	int n,m,column,age1,age2,flag=0,cnt=0;
	cin>>n>>m;
	vector v(n);
	for(int i=0;i=age1&&v[j].age<=age2&&cnt!=column){
				cout< 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/629663.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号