1 条题解
-
0
不难发现,一种语言集合与它关于语言全集的补集一定没有交集,因此这两个集合中只能出现一个——这意味着答案一定不大于总集合数 的一半,即 。
显然让所有人掌握第 种语言是合法的,此时的答案恰好为 ,故最终的答案为 。
#include <bits/stdc++.h> using namespace std; const int P = 127237991; int power(int b, int k, int p) { if (k == 0) return 1; if (k == 1) return b; long long s = power(b, k >> 1, p); s = s * s % p; if (k & 1) s *= b; return s % p; } int main() { long long n; cin >> n; n = (n - 1) % (P - 1); cout << power(2, n, P) << endl; return 0; }
- 1
信息
- ID
- 52
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 2
- 已通过
- 1
- 上传者