社区讨论

求助

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

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@lo2cxerq
此快照首次捕获于
2023/10/23 11:47
2 年前
此快照最后确认于
2023/11/03 11:56
2 年前
查看原帖
蒟蒻累加法推出来公式是这样的:
number[n]number[2]=i=1n2up[i]number[n] - number[2] = \sum_{i=1}^{n-2} up[i]
numbernumber 是当前车上的人数,upup 是上车的人数,但是样例也过不了,求助大佬纠错。
代码如下
CPP
#include<bits/stdc++.h>
using namespace std;
int num_a[25],num_u[25],ans[25];
int main(){
   int a,n,m,x;
   scanf("%d%d%d%d",&a,&n,&m,&x);
   num_a[1]=1,num_u[1]=0,num_a[2]=0,num_u[2]=1;
   for(int i=3;i<=n;i++) num_a[i]=num_a[i-2]+num_a[i-1],num_u[i]=num_u[i-2]+num_u[i-1];
   int sum_a=0,sum_u=0;
   for(int i=1;i<=n-2;i++) sum_a+=num_a[i],sum_u+=num_u[i];
   int u=(m-a-sum_a*a)/sum_u;
   ans[1]=a,ans[2]=a;
   for(int i=3;i<=x;i++) ans[i]=ans[i-1]+num_a[i-2]*a+num_u[i-2]*u;
   printf("%d\n",ans[x]);
   return 0;
}
谢谢!

回复

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

正在加载回复...