小红认为一个偶数长度为 的排列 是好排列,当且仅当恰好有一半的 使得 是 的倍数。 小红想知道,全部长度为 的排列中,共有多少个好排列?由于答案可能很大,请将答案对 取模后输出。 长度为 的排列是由 这 个整数、按任意顺序组成的数组,其中每个整数恰好出现一次。例如, 是一个长度为 的排列,而 和 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。
区块链毕设网qklbishe.com为您提供问题的解答
小红认为一个偶数长度为
的排列
是好排列,当且仅当恰好有一半的
使得
是
的倍数。
小红想知道,全部长度为
的排列中,共有多少个好排列?由于答案可能很大,请将答案对
取模后输出。
长度为
的排列是由
这
个整数、按任意顺序组成的数组,其中每个整数恰好出现一次。例如,
是一个长度为
的排列,而
和
都不是排列,因为前者存在重复元素,后者包含了超出范围的数。
#include <iostream> using namespace std; const int MOD = 1e9 + 7; const int MAX = 1e6 + 5; long long fact[MAX], inv_fact[MAX]; // 快速幂取模 long long pow_mod(long long x, int n) { long long res = 1; while (n) { if (n & 1) res = res * x % MOD; x = x * x % MOD; n >>= 1; } return res; } // 预处理阶乘和逆元 void precompute() { fact[0] = 1; for (int i = 1; i < MAX; i++) { fact[i] = fact[i-1] * i % MOD; } inv_fact[MAX-1] = pow_mod(fact[MAX-1], MOD-2); for (int i = MAX-2; i >= 0; i--) { inv_fact[i] = inv_fact[i+1] * (i+1) % MOD; } } // 组合数计算 long long comb(int n, int k) { if (k < 0 || k > n) return 0; return fact[n] * inv_fact[k] % MOD * inv_fact[n - k] % MOD; } int main() { precompute(); int n; cin >> n; int k = n / 3; int s = n / 2 - k; int m = n - k; if (s < 0 || s > k || s > m) { cout << 0 << endl; return 0; } long long c = comb(m, s); long long perm1 = fact[k] * inv_fact[k - s] % MOD; long long perm2 = fact[k] * inv_fact[s] % MOD; long long ans = c * perm1 % MOD; ans = ans * perm2 % MOD; ans = ans * fact[n - k] % MOD; cout << ans << endl; return 0; }
10:30
以上就是关于问题小红认为一个偶数长度为 的排列 是好排列,当且仅当恰好有一半的 使得 是 的倍数。
小红想知道,全部长度为 的排列中,共有多少个好排列?由于答案可能很大,请将答案对 取模后输出。
长度为 的排列是由 这 个整数、按任意顺序组成的数组,其中每个整数恰好出现一次。例如, 是一个长度为 的排列,而 和 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。的答案
欢迎关注区块链毕设网-
web3一级市场套利打新赚钱空投教程
区块链NFT链游项目方科学家脚本开发培训
从业7年-专注一级市场
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 小红认为一个偶数长度为 的排列 是好排列,当且仅当恰好有一半的 使得 是 的倍数。
小红想知道,全部长度为 的排列中,共有多少个好排列?由于答案可能很大,请将答案对 取模后输出。
长度为 的排列是由 这 个整数、按任意顺序组成的数组,其中每个整数恰好出现一次。例如, 是一个长度为 的排列,而 和 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 小红认为一个偶数长度为 的排列 是好排列,当且仅当恰好有一半的 使得 是 的倍数。
小红想知道,全部长度为 的排列中,共有多少个好排列?由于答案可能很大,请将答案对 取模后输出。
长度为 的排列是由 这 个整数、按任意顺序组成的数组,其中每个整数恰好出现一次。例如, 是一个长度为 的排列,而 和 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 小红认为一个偶数长度为 的排列 是好排列,当且仅当恰好有一半的 使得 是 的倍数。
小红想知道,全部长度为 的排列中,共有多少个好排列?由于答案可能很大,请将答案对 取模后输出。
长度为 的排列是由 这 个整数、按任意顺序组成的数组,其中每个整数恰好出现一次。例如, 是一个长度为 的排列,而 和 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 小红认为一个偶数长度为 的排列 是好排列,当且仅当恰好有一半的 使得 是 的倍数。 小红想知道,全部长度为 的排列中,共有多少个好排列?由于答案可能很大,请将答案对 取模后输出。 长度为 的排列是由 这 个整数、按任意顺序组成的数组,其中每个整数恰好出现一次。例如, 是一个长度为 的排列,而 和 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。