社区讨论

60分WA+RE求调

P2827[NOIP 2016 提高组] 蚯蚓参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mjazcie4
此快照首次捕获于
2025/12/18 13:08
3 个月前
此快照最后确认于
2025/12/20 15:45
3 个月前
查看原帖
RT
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+5;
int n,m,q,t,a[N],ans[N],del;
double u,v,p;
queue<int>q1,q2,q3;
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>m>>q>>u>>v>>t;
	p=u/v;
//	cout<<p<<'\n';
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	sort(a+1,a+n+1);
	for(int i=n;i;i--)
	{
		q1.push(a[i]);
	}
	for(int i=1;i<=m;i++)
	{
		int maxn,maxid,m2,m3;
		if(i==1) 
		{
			maxn=q1.front(),maxid=1;
		}
		else
		{
			int n1=0,n2=0,n3=0;
			if(!q1.empty()) n1=q1.front();
			if(!q2.empty()) n2=q2.front();
			if(!q3.empty()) n3=q3.front();
            //get maxn
			if(n1>=n2 and n1>=n3) maxn=n1,maxid=1;
			else if(n2>=n1 and n2>=n3) maxn=n2,maxid=2;
			else maxn=n3,maxid=3;
		}
        //delete
		if(maxid==1) q1.pop();
		else if(maxid==2) q2.pop();
		else q3.pop();
        //get new val
		int tmp=maxn+del;
		if(i%t==0) cout<<tmp<<' ';
		m2=floor(p*tmp)-del-q;
		m3=tmp-floor(p*tmp)-del-q;
		q2.push(m2),q3.push(m3);
//		cout<<del<<' ';
		del+=q;
	}
	cout<<'\n';
	int j=1;
	while(!q1.empty() or !q2.empty() or !q3.empty())
	{
		int maxn,maxid,n1=0,n2=0,n3=0;
		if(!q1.empty()) n1=q1.front();
		if(!q2.empty()) n2=q2.front();
		if(!q3.empty()) n3=q3.front();
        //get maxn
		if(n1>=n2 and n1>=n3) maxn=n1,maxid=1;
		else if(n2>=n1 and n2>=n3) maxn=n2,maxid=2;
		else maxn=n3,maxid=3;
        //delete
		if(maxid==1) q1.pop();
		else if(maxid==2) q2.pop();
		else q3.pop();
		if(j%t==0) cout<<maxn<<' ';
		j++;
	}
	cout<<'\n';
	
	
	return 0;
}
救救孩子!

回复

0 条回复,欢迎继续交流。

正在加载回复...