const ll mod = 1e9 + 7;
namespace comb
{
int n, p;
vector<int> inv, fac, finv;
void Preprocess(int _n, int _p)
{
n = _n;
p = _p;
inv.resize(n + 5);
fac.resize(n + 5);
finv.resize(n + 5);
inv[1] = 1;
for (int i = 2; i <= n + 1; ++i)
inv[i] = (ll)(p - p / i) * inv[p % i] % p;
fac[0] = 1;
for (int i = 1; i <= n + 1; ++i)
fac[i] = (ll)fac[i - 1] * i % p;
finv[0] = 1;
for (int i = 1; i <= n + 1; ++i)
finv[i] = (ll)finv[i - 1] * inv[i] % p;
}
int C(int x, int y) { return (ll)fac[x] * finv[y] % p * finv[x - y] % p; }
}
void solve()
{
ll n, k, x, y;
cin >> n >> k;
for (int i = 1; i <= k; ++i)
{
cin >> x >> y;
if (x == y)
--n;
else
n -= 2;
}
if (n == 0)
{
cout << 1 << endl;
}
else if (n == 1)
{
cout << 1 << endl;
}
else
{
ll ans = 1, t = 2, cur = 2;
for (ll i = n; i >= 0; --i)
{
ll res = n - i;
if (res % 2 == 0 && res != 0)
{
ans = (ans + comb::C(n, i) * t % mod) % mod;
cur += 4;
t = t * cur % mod;
}
}
cout << ans << endl;
}
}
codeforces div2 940
最新推荐文章于 2024-07-25 11:18:29 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)