結果
問題 | No.420 mod2漸化式 |
ユーザー |
|
提出日時 | 2021-04-29 21:32:17 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 1,000 ms |
コード長 | 1,758 bytes |
コンパイル時間 | 837 ms |
コンパイル使用メモリ | 104,592 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-17 22:01:38 |
合計ジャッジ時間 | 1,748 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 35 |
ソースコード
//#include <atcoder/all>#include <iostream>#include <numeric>#include <cmath>#include <limits>#include <stdio.h>#include <iomanip>#include <string> // string, to_string, stoi#include <vector> // vector#include <algorithm> // min, max, swap, sort, reverse, lower_bound, upper_bound#include <utility> // pair, make_pair#include <tuple> // tuple, make_tuple#include <cstdint> // int64_t, int*_t#include <cstdio> // printf#include <map> // map#include <queue> // queue, priority_queue#include <set> // set#include <stack> // stack#include <deque> // deque#include <unordered_map> // unordered_map#include <unordered_set> // unordered_set#include <bitset> // bitset#include <cctype> // isupper, islower, isdigit, toupper, tolowerusing namespace std;//using namespace atcoder;using ll = long long;#define all(A) A.begin(),A.end()using vll = vector<ll>;#define rep(i, n) for (long long i = 0; i < (long long)(n); i++)using Graph = vector<vector<pair<ll,ll>>>;vector<ll> fact, factinv, inv;ll mod = 1e9 + 7;void prenCkModp(ll n) {fact.resize(n + 5);factinv.resize(n + 5);inv.resize(n + 5);fact.at(0) = fact.at(1) = 1;factinv.at(0) = factinv.at(1) = 1;inv.at(1) = 1;for (ll i = 2; i < n + 5; i++) {fact.at(i) = (fact.at(i - 1) * i) % mod;inv.at(i) = mod - (inv.at(mod % i) * (mod / i)) % mod;factinv.at(i) = (factinv.at(i - 1) * inv.at(i)) % mod;}}ll nCk(ll n, ll k) {if (n < k||k<0) return 0;return fact.at(n) * (factinv.at(k) * factinv.at(n - k) % mod) % mod;}int main() {ll N;cin >> N;if (N > 32) {cout << "0 0" << endl;return 0;}prenCkModp(34);cout << nCk(31, N) << " ";ll an = 0;ll i = 1;rep(k, 31) {an += i* nCk(30, N - 1);i *= 2;}cout << an << endl;}