求助为什么爆空间
查看原帖
求助为什么爆空间
388718
wjk20050306楼主2021/11/12 18:35

用的二分+暴力 递归次数也不会很多吧? 请dalao帮我

#include<bits/stdc++.h>
using namespace std;
int a,n,m,x;
int fibo[30];
void init(){
	scanf("%d%d%d%d",&a,&n,&m,&x);
	fibo[1]=a;
}
int temp[30];
bool flag;
void cal(int l,int r){
	if(flag==1) return;
	int mid=(l+r)/2;
	fibo[2]=mid;
	temp[1]=a;
	temp[2]=a;
	for(int i=3;i<=n;i++){
		fibo[i]=fibo[i-1]+fibo[i-2];//上车人数=前两站的和 
		temp[i]=temp[i-1]+fibo[i-2]; 
	}
	if(temp[n-1]==m) {
		flag=1;
		return;
	}
	else if(temp[n-1]<m) cal(mid+1,r);
	else if(temp[n-1]>m) cal(l,mid);
}
signed main(){
	init();
	cal(1,a);
	printf("%d",temp[x]);
	return 0;
}

万分感谢

2021/11/12 18:35
加载中...