91分代码求调!!!
查看原帖
91分代码求调!!!
1256176
CQnythy2012楼主2024/10/14 23:32

我用的是DP,这样做的第三个点爆了TLE(我知道双重循环会爆但不知怎么改),哪位大神帮我调一下,谢谢QAQ。

#include<bits/stdc++.h>
using namespace std;

long long b;
long long f[150000+10];
struct node{
	long long t;//头 
	long long w;//尾 
	long long g;
}a[150000+10];
bool cmp(node a,node b){
	return a.w<b.w;
}

int main(){
	scanf("%lld",&b);
	for(long long i=1;i<=b;i++){
		scanf("%lld%lld",&a[i].t,&a[i].w );
		a[i].g=a[i].w-a[i].t+1;
	}
	sort(a+1,a+b+1,cmp);
	f[1]=a[1].g;	
	for(long long i=1;i<=b;i++){
		f[i]=a[i].g;
	}
	long long maxx=0;
	for(long long i=2;i<=b;i++){
		for(long long j=1;j<i;j++){
			if(a[j].w <a[i].t ){
				f[i]=max(f[i],a[i].g+f[j]);
				maxx=max(f[i],maxx);
			}
		}
	}	
	printf("%lld",maxx);
	return 0;
}
2024/10/14 23:32
加载中...