暴力求调代码
查看原帖
暴力求调代码
664744
_lqs_楼主2022/12/26 11:48
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m,i,j,ans,l;
int t,op,k,Max,sm;
int a[2005];
signed main(){
	scanf("%lld",&n);
	for(i=1;i<=n;i++) scanf("%lld",&a[i]);
	scanf("%lld",&m);
	for(i=1;i<=m;i++){
		scanf("%lld%lld",&op,&k);
		a[op]+=k;
		ans=0;
		for(j=1;j<=n;j++){
			Max=-1;
			for(l=j+1;l<=n;l++){
				double p=(double)(a[l]-a[j])/(double)(l-j);
				double p1=(double)a[j]-(p*j);
				if((double)Max<=(double)sm*p+p1) ans++;
				if(a[l]>Max) Max=a[l],sm=l;
			}
		}
		printf("%lld\n",ans);
	}
	return 0;
}

rt,WA了一大片,基本思路就是两点求解析式看看是否覆盖两点间的最大值。

2022/12/26 11:48
加载中...