悬关 TLE 求调(求正解方法)
  • 板块学术版
  • 楼主DevilsFlame
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/14 11:24
  • 上次更新2024/8/14 13:55:55
查看原帖
悬关 TLE 求调(求正解方法)
1050431
DevilsFlame楼主2024/8/14 11:24

T463904 收获

这是我的代码,链表优化,从TLE 12个点 -> TLE 3个点:

#include<bits/stdc++.h>
using namespace std;
int s[100010],m,a[100010],b[100010],h,n;
int k;
int v[100010][2];
int main()
{
	ios::sync_with_stdio(0);
	cin >> n >> m >> h;
	for(int i = 1;i <= n;i ++)
	{
		cin >> a[i];
		v[i][1] = i + 1;
		v[i][0] = i - 1;
	}
	for(int i = 1;i <= n;i ++)
	{
		cin >> b[i];
		b[i] = (h - a[i]) / b[i] + 1;
	}
	v[0][1] = 1;
	v[n + 1][0] = n;
	while(m --)
	{
	    int i = 0;
		while(1)
		{
		    i = v[i][1];
			if(i > n) break;
			if(b[i] > k)
			{
				k ++;
			}
			else
			{
				v[v[i][1]][0] = v[i][0];
				v[v[i][0]][1] = v[i][1];
			}
		}
	}
	printf("%d\n",k);
	return 0;
}
2024/8/14 11:24
加载中...