AHOI2009中國象棋

2021-07-24 05:22:33 字數 822 閱讀 2293

狀態很難想。本題難就難在如何定狀態。

再看題解之前,我一點思路也沒有。看到題解的狀態表示後,我立刻知道怎麼做了。

f[i][j][k]表示至第i行,有j列放1個,有k列放2個。

這樣f[i][j][k]即為第i行不放、放1個、放2個的數量總和。

狀態轉移方程很長,用到組合的相關知識。

i=1時需特殊處理。

詳見**:

#include #include #include #include #include #include #include #include #include using namespace std;

long long f[101][101][101]=;

const long long mod=9999973;

long long c(long long n,long long m) ;

int cnt = 0;

for (long long i = n; i >= n - m + 1; i--)a[++cnt] = i;

while (m > 1)

m--;

}for (int i = 1; i <= cnt; i++)ans = (ans * a[i]) % mod;

return ans;

}int main()

} else }}

}}

long long tot = 0;

for (int i = 0; i <= m; i++)

}cout << tot % mod;

return 0;

}

AHOI2009 中國象棋

題目描述 這次小可可想解決的難題和中國象棋有關,在乙個n行m列的棋盤上,讓你放若干個炮 可以是0個 使得沒有乙個炮可以攻擊到另乙個炮,請問有多少種放置方法。大家肯定很清楚,在中國象棋中炮的行走方式是 乙個炮攻擊到另乙個炮,當且僅當它們在同一行或同一列中,且它們之間恰好 有乙個棋子。你也來和小可可一起...

AHOI2009 中國象棋

這次小可可想解決的難題和中國象棋有關,在乙個 n n 行m role presentation style position relative m m列的棋盤上,讓你放若干個炮 可以是 0 0 個 使得沒有乙個炮可以攻擊到另乙個炮,請問有多少種放置方法。大家肯定很清楚,在中國象棋中炮的行走方式是 乙...

AHOI2009 中國象棋

題目描述 這次小可可想解決的難題和中國象棋有關,在乙個n行m列的棋盤上,讓你放若干個炮 可以是0個 使得沒有乙個炮可以攻擊到另乙個炮,請問有多少種放置方法。大家肯定很清楚,在中國象棋中炮的行走方式是 乙個炮攻擊到另乙個炮,當且僅當它們在同一行或同一列中,且它們之間恰好 有乙個棋子。你也來和小可可一起...