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

(优先队列STL)洛谷3887 世界杯,第1张

(优先队列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()这两个会改变队列内容的函数。

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5503465.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存