社区讨论

70分,三个超时求调必关

B4196[海淀区小学组 2023] 赛车游戏参与者 2已保存回复 4

讨论操作

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

当前回复
4 条
当前快照
1 份
快照标识符
@mjcnfom8
此快照首次捕获于
2025/12/19 17:10
2 个月前
此快照最后确认于
2025/12/21 10:05
2 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
const int N=2e6+1000;
map<string,int> mp;
int a[N];
int main(){ 
	int T;
	cin>>T;
	while(T--){
		int n,m;
		double s=0;
		memset(a,0,sizeof(a));
		cin>>n>>m;
		for(int i=1;i<=n;i++){
			scanf("%d",&a[i]);
		}
		sort(a+1,a+n+1);
		int mil=1,mir=1,ml=1,mr=n;
		double l=0,r=m;
		while(ml<=mr){
			double xm=(a[ml]-l)/mil*1.000000,mx=(r-a[mr])/mir*1.000000;
			if(xm<mx){
				l=a[ml];
				mil++;
				ml++;
				s+=xm;
				r-=mir*xm;
			}else{
				r=a[mr];
				mir++;
				mr--;
				s+=mx;
				l+=mil*mx;
			}
			//1 11 11 11 11 1
		}
		
		s+=(r-l)/(mil+mir);
		//cout<<mir<<" "<<mil;
		cout<<fixed<<setprecision(6)<<s<<endl;
	}
	return 0;
}

回复

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

正在加载回复...