Submission #3589359
Source Code Expand
#include<bits/stdc++.h> typedef long long ll; int const N = 305 * 2; int const MOD = 1e9 + 7; int pa[N]; ll f[N][N]; ll fac[N]; int sum[N]; int n, m; int main() { std::ios::sync_with_stdio(0); std::cin >> n >> m; fac[0] = 1; for(int i = 1; i < N; ++i) if((i & 1) == 0) { fac[i] = fac[i - 2] * (i - 1) % MOD; } for(int i = 1; i <= m; ++i) { int x, y; std::cin >> x >> y; pa[x] = y; pa[y] = x; } n <<= 1; for(int i = 1; i <= n; ++i) { sum[i] = sum[i - 1]; if(pa[i] == 0) ++sum[i]; } ll ans = 0; for(int i = 1; i <= n; ++i) { for(int j = 1; j + i - 1 <= n; ++j) { int l = j, r = j + i - 1; bool flag = (sum[r] - sum[l - 1]) % 2; for(int k = l; k <= r; ++k) if(pa[k]) { if(pa[k] < l || pa[k] > r) { flag = 1; break; } } if(flag) continue; f[l][r] = fac[sum[r] - sum[l - 1]]; for(int k = l; k < r; ++k) { int tmp = f[l][k] * fac[sum[r] - sum[k]] % MOD; tmp = (MOD - tmp) % MOD; f[l][r] = (f[l][r] + tmp) % MOD; } ans += f[l][r] * fac[n - m - m - (sum[r] - sum[l - 1])] % MOD; ans %= MOD; } } std::cout << ans << '\n'; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Chords |
User | vjudge1 |
Language | C++14 (GCC 5.4.1) |
Score | 900 |
Code Size | 1128 Byte |
Status | AC |
Exec Time | 165 ms |
Memory | 3072 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 900 / 900 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample-01.txt, sample-02.txt, sample-03.txt |
All | sample-01.txt, sample-02.txt, sample-03.txt, sample-01.txt, sample-02.txt, sample-03.txt, subtask01-01.txt, subtask01-02.txt, subtask01-03.txt, subtask01-04.txt, subtask01-05.txt, subtask01-06.txt, subtask01-07.txt, subtask01-08.txt, subtask01-09.txt, subtask01-10.txt, subtask01-11.txt, subtask01-12.txt, subtask01-13.txt, subtask01-14.txt, subtask01-15.txt, subtask01-16.txt, subtask01-17.txt, subtask01-18.txt, subtask01-19.txt, subtask01-20.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample-01.txt | AC | 1 ms | 256 KB |
sample-02.txt | AC | 1 ms | 256 KB |
sample-03.txt | AC | 1 ms | 256 KB |
subtask01-01.txt | AC | 1 ms | 256 KB |
subtask01-02.txt | AC | 120 ms | 2816 KB |
subtask01-03.txt | AC | 75 ms | 2816 KB |
subtask01-04.txt | AC | 1 ms | 512 KB |
subtask01-05.txt | AC | 1 ms | 256 KB |
subtask01-06.txt | AC | 45 ms | 2432 KB |
subtask01-07.txt | AC | 5 ms | 1152 KB |
subtask01-08.txt | AC | 2 ms | 640 KB |
subtask01-09.txt | AC | 165 ms | 3072 KB |
subtask01-10.txt | AC | 39 ms | 2944 KB |
subtask01-11.txt | AC | 13 ms | 2560 KB |
subtask01-12.txt | AC | 3 ms | 1152 KB |
subtask01-13.txt | AC | 2 ms | 640 KB |
subtask01-14.txt | AC | 2 ms | 256 KB |
subtask01-15.txt | AC | 15 ms | 2688 KB |
subtask01-16.txt | AC | 22 ms | 2560 KB |
subtask01-17.txt | AC | 34 ms | 2176 KB |
subtask01-18.txt | AC | 14 ms | 1280 KB |
subtask01-19.txt | AC | 30 ms | 1408 KB |
subtask01-20.txt | AC | 95 ms | 2176 KB |