[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
", tot[x][0] * a + tot[x][1] * y);
	return 0;
}

  

原文地址:https://www.cnblogs.com/zhenghaotian/p/7089962.html