社区讨论

40分求助,实在没找到问题

P1011[NOIP 1998 提高组] 车站参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@ly9gks6l
此快照首次捕获于
2024/07/06 09:41
2 年前
此快照最后确认于
2024/07/06 11:20
2 年前
查看原帖
aa是a的系数,b是第二站上车的人数,bb是b的系数,s[]是上车的人数
CPP
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll a,n,m,x;
ll s[999],ans[999]; 
ll aa=0,bb=1,b;
int main(){
	cin>>a>>n>>m>>x;
	if(x==1||x==2){
		cout<<a;
		return 0;
	}
	if(x==3){
		cout<<2*a;
		return 0;
	}
	if(x==n){
		cout<<0;
		return 0;
	}
	if(x==n-1){
		cout<<m;
		return 0;
	}
	for(ll i=3;i<=n-1;i++){
		ll cnt=aa+bb;
		aa=bb;
		bb=cnt;
	}
	b=(m-(aa*a))/bb;
	s[1]=a;
	s[2]=b;
	ans[1]=a;
	ans[2]=a;
	aa=0;
	bb=1;
	for(ll i=3;i<=n-1;i++){
		s[i]=s[i-2]+s[i-1];
		ans[i]=ans[i-1]+s[i-2];
	}
	cout<<ans[x];
	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...