[luoguP1011] 车站(递推)
蒟蒻我关系式没有找出来。
直接模拟递推过程好了。
代码
#include <cstdio>
#define N 21
int a, n, m, x, y;
int up[N][2], down[N][2], tot[N][2];
int main()
{
int i;
scanf("%d %d %d %d", &a, &n, &m, &x);
up[1][0] = up[2][1] = down[2][1] = tot[1][0] = tot[2][0] = 1;
for(i = 3; i <= n; i++)
{
up[i][0] = up[i - 1][0] + up[i - 2][0];
up[i][1] = up[i - 1][1] + up[i - 2][1];
down[i][0] = up[i - 1][0];
down[i][1] = up[i - 1][1];
tot[i][0] = tot[i - 1][0] + up[i][0] - down[i][0];
tot[i][1] = tot[i - 1][1] + up[i][1] - down[i][1];
}
m -= a * tot[n - 1][0];
y = m / tot[n - 1][1];
printf("%d\n", tot[x][0] * a + tot[x][1] * y);
return 0;
}

浙公网安备 33010602011771号