这啥玩意啊这是(求大佬
查看原帖
这啥玩意啊这是(求大佬
308800
Polynswin楼主2022/8/13 10:20

调了1h多,从10pts变成了30pts(悲
只有样例,和6#7#过了

#include<bits/stdc++.h>
#define ll long long
#define rint register int
#define mmt(a,b) memset(a,b,sizeof(a))
#define test(x) cout<<#x<<" = "<<x<<endl
using namespace std;
const int inf=0x3f3f3f3f,maxn=1e5;
ll n,tcnt=1,scnt=1,cnt=1;
double tnow,snow;
ll t[maxn],s[maxn];
signed main()
{
	rint i,j;
////	freopen("P2338_2.in","r",stdin);
	cin>>n;
	for(i=1;i<=n;i++)
	{
		char op;
		cin>>op;
		if(op=='T')cin>>t[++t[0]];
		else cin>>s[++s[0]];
	}
	sort(s+1,s+s[0]+1);
	sort(t+1,t+t[0]+1);
	s[s[0]+1]=inf;
	t[s[0]+1]=inf;
	while(scnt<=s[0]||tcnt<=t[0])
	{
		
		double v=1.0/cnt;
		double st=snow+(t[tcnt]*1.0-tnow)*v;
		double ss=s[scnt];
		if(st<ss)//v为  x m/s
		{
//			test('T');
//			test(tcnt);
			snow=st;
			tnow=t[tcnt++];
		}
		else
		{
			
//			test('S');
//			test(scnt);
			tnow+=(ss-snow)/v;
			snow=ss;
			scnt++;
		}
		cnt++;
	}
	double v=1.0/cnt;
	tnow+=(1000-snow)/v;
	cout<<int(tnow+0.5);
	return 0;
}

2022/8/13 10:20
加载中...