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

(优先队列STL)洛谷3887 世界杯

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

(优先队列STL)洛谷3887 世界杯

目录

题目概述:

AC代码:

分析思路:


 

题目概述:

AC代码:
#include
#include
using namespace std;
priority_queue,less> q1,q2,q3,q4;
int type[3];
void join(priority_queue& p,int t)
{
	int curr;
	for(int i=0;i>curr;
		p.push(curr);
	}
}
int choice(priority_queue& p,int t)
{
	int sum=0;
	while(t--)
	{
		sum+=p.top();
		p.pop();
	}
	return sum;
}
int main()
{
	std::ios::sync_with_stdio(false);
	int k,d,m,f;
	cin>>k>>d>>m>>f;
		int curr;
	join(q1,k),join(q2,d),join(q3,m),join(q4,f);
	int q;
	cin>>q;
	while(q--)
	{
		cin>>type[0]>>type[1]>>type[2];
		double ans=0;
		ans=choice(q1,1)+choice(q2,type[0])+choice(q3,type[1])+choice(q4,type[2]);
		ans/=11;
		printf("%.2lfn",ans);
	}
	return 0;
}

分析思路:

1.其实题意就是每套阵容都选择能力最强的球员,前面阵容选过的不能重复再选。

2.优先队列的一道裸题,熟悉用法就可以秒了。

3.不过写的时候犯了个低级错误,C++函数是值传递的,join和choice函数都应该传入队列的引用不能只传入队列,否则无法真正实现push和pop()这两个会改变队列内容的函数。

 

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

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

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