codeforces 15e 组合数学

组合数学,盲区。。日后慢慢补

题意:

首先,请仔细看图,找出图中的规律。

  给定这个图的大小nn,问有多少条有向路径满足:

  • 路径长度为正
  • 路径是沿着图中的边走的
  • 路径不能自交
  • 路径从H点开始,在H点结束
  • 路径不能将黑色的格子圈住

  答案模1e9 + 9

#include <bits/stdc++.h>
using namespace std;

const int M = 1e9 + 9;

int n;

inline void init() {
    scanf("%d", &n);
}

int sum = 1; 
inline void solve() {
    for (int i = 3, last = -1, P = 1; i <= n; i++) {
        if (i & 1) {
            last = (2 * last + 3) % M;
            P = (P * 1ll * last) % M; 
        } 
        sum = (sum + P) % M;
    }
    sum = (sum << 1) % M;
    sum = (sum * 1ll * sum) % M;
    sum = ((sum + 1) << 1) % M;
    printf("%d", sum); 
}

int main() {
    init();
    solve();
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_38759433/article/details/86560614
今日推荐