两次提交都是60分求助!
查看原帖
两次提交都是60分求助!
947863
SHC_CENSORED楼主2024/7/23 11:12

第一次提交

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"

int a,n,m,x;
int b[1000],c[1000];

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	cin>>a>>n>>m>>x;
	b[0]=a,b[1]=a,b[2]=a;
	for(int i=3;i<n;i++){
		b[i]=b[i-2]+b[i-3];
	}
	int ans=(m-b[n-1])/(n-3);
	cout<<b[x]+(x-3)*ans;
	return 0;
}

第二次提交

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"

int a,n,m,x;
int b[1000],c[1000],d[1000];

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	cin>>a>>n>>m>>x;
	if(x==1){
		cout<<a<<endl;
		return 0;
	}
	b[0]=a,b[1]=a,b[2]=a;
	c[2]=1,d[4]=1,d[5]=1;
	for(int i=3;i<n;i++){
		b[i]=b[i-2]+b[i-3];
		//cout<<b[i]<<" ";
	}//cout<<endl;
	for(int i=3;i<n;i++){
		c[i]=c[i-1]+c[i-2];
		//cout<<c[i]<<" ";
	}//cout<<endl;
	for(int i=6;i<=n;i++){
		d[i]=d[i-1]*2;
		//cout<<d[i]<<" ";
	}//cout<<endl;
	int ans=(m-b[n-1])/d[n];
	cout<<b[x]+(d[x])*ans;
	return 0;
}
2024/7/23 11:12
加载中...