HNOI2002 公交车路线

Posted zcdhj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HNOI2002 公交车路线相关的知识,希望对你有一定的参考价值。

Luogu

很水的DP

\(E\)丢掉,就可以发现原来的环变成了一个以\(A\)为中点,两边对称的链。

这个时候\(B\)\(H\)的答案是一样的,\(G\)\(C\)是一样的,\(F\)\(D\)是一样的。

那么我们就没有必要再去重复的求答案,原来的\(8\)个点被压成了\(4\)个点。

\(dp[x,y]\)为从\(A\)点到\(y\)点路程为\(x\)的方案总数。

状态转移方程为

\[dp[x,y]=dp[x-1,y-1]+dp[x-1,y+1]\]

\[dp[0,1]=1\]

记得转移的时候要此时是否是链的边界

再用滚动数组优化即可

PS:这题该怎么矩阵快速幂啊 如有dalao了解请私信小蒟蒻

#include <cstdio>

const int mod = 1e3;

int N;
int dp[2][5];

int main()
{
    scanf("%d", &N);
    dp[0][1] = 1;
    for(int i = 1, pos = 1; i <= N; ++i, pos ^= 1)
        for(int j = 1; j <= 4; ++j)
            dp[pos][j] = (dp[pos ^ 1][(j == 1) ? 2 : j - 1] + dp[pos ^ 1][(j == 4) ? 0 : j + 1]) % mod;
    printf("%d\n", (dp[(N & 1) ^ 1][4] << 1) % mod);
    return 0; 
}

以上是关于HNOI2002 公交车路线的主要内容,如果未能解决你的问题,请参考以下文章

模板矩阵快速幂 洛谷P2233 [HNOI2002]公交车路线

HNOI2002矩阵快速幂公交车路线

[BZOJ2004][Hnoi2010]Bus 公交线路

[Hnoi2010]Bus 公交线路

BZOJ2004[Hnoi2010]Bus 公交线路 状压+矩阵乘法

BZOJ2004: [Hnoi2010]Bus 公交线路