#include<bits/stdc++.h> usingnamespace std; using ll = longlong; constint maxn = 2e5 + 10; const ll mod = 1e9 + 7; ll inv[maxn], fac[maxn]; // 分别表示逆元和阶乘 // 快速幂 ll quickPow(ll a, ll b) { ll ans = 1; while (b) { if (b & 1) ans = (ans * a) % mod; b >>= 1; a = (a * a) % mod; } return ans; }
voidinit() { // 求阶乘 fac[0] = 1; for (int i = 1; i <= maxn; i++) { fac[i] = fac[i - 1] * i % mod; } // 求逆元 inv[maxn - 1] = quickPow(fac[maxn - 1], mod - 2); for (int i = maxn - 2; i >= 0; i--) { inv[i] = inv[i + 1] * (i + 1) % mod; } } ll C(int n, int m) { if (m > n) { return0; } if (m == 0) return1; return fac[n] * inv[m] % mod * inv[n - m] % mod; } ll get(ll a, ll b, ll c, ll d) { returnC(c - a + d - b, c - a) % mod; } int n, k, l; constint N = 1e6 + 100; int f1[N]; int f2[N]; intfind(int x, int *fa) { return fa[x] == x ? x : fa[x] = find(fa[x], fa); } voidmerge(int x, int y, int *fa) { fa[find(x, fa)] = fa[find(y, fa)]; } map<pair<int, int>, int> mp; intmain() { int a, b; char c; cin >> a >> c >> b; if (c == '+') cout << a + b; else cout << a - b; return0; }
#include<bits/stdc++.h> usingnamespace std; using ll = longlong; constint maxn = 2e5 + 10; const ll mod = 1e9 + 7; ll inv[maxn], fac[maxn]; // 分别表示逆元和阶乘 // 快速幂 ll quickPow(ll a, ll b) { ll ans = 1; while (b) { if (b & 1) ans = (ans * a) % mod; b >>= 1; a = (a * a) % mod; } return ans; }
voidinit() { // 求阶乘 fac[0] = 1; for (int i = 1; i <= maxn; i++) { fac[i] = fac[i - 1] * i % mod; } // 求逆元 inv[maxn - 1] = quickPow(fac[maxn - 1], mod - 2); for (int i = maxn - 2; i >= 0; i--) { inv[i] = inv[i + 1] * (i + 1) % mod; } } ll C(int n, int m) { if (m > n) { return0; } if (m == 0) return1; return fac[n] * inv[m] % mod * inv[n - m] % mod; } ll get(ll a, ll b, ll c, ll d) { returnC(c - a + d - b, c - a) % mod; } int n, k, l; constint N = 1e6 + 100; int f1[N]; int f2[N]; intfind(int x, int *fa) { return fa[x] == x ? x : fa[x] = find(fa[x], fa); } voidmerge(int x, int y, int *fa) { fa[find(x, fa)] = fa[find(y, fa)]; } map<pair<int, int>, int> mp; intmain() {
int n; cin >> n; ll sum = 0; vector<ll> a(n + 1); for (int i = 1; i <= n; i++) { cin >> a[i]; sum += a[i]; } int m; cin >> m; for (int i = 1; i <= m; i++) { int j, k; cin >> j >> k; cout << sum - a[j] + k << "\n"; } return0; }
#include<bits/stdc++.h> usingnamespace std; using ll = longlong; constint maxn = 2e5 + 10; const ll mod = 1e9 + 7; ll inv[maxn], fac[maxn]; // 分别表示逆元和阶乘 // 快速幂 ll quickPow(ll a, ll b) { ll ans = 1; while (b) { if (b & 1) ans = (ans * a) % mod; b >>= 1; a = (a * a) % mod; } return ans; }
voidinit() { // 求阶乘 fac[0] = 1; for (int i = 1; i <= maxn; i++) { fac[i] = fac[i - 1] * i % mod; } // 求逆元 inv[maxn - 1] = quickPow(fac[maxn - 1], mod - 2); for (int i = maxn - 2; i >= 0; i--) { inv[i] = inv[i + 1] * (i + 1) % mod; } } ll C(int n, int m) { if (m > n) { return0; } if (m == 0) return1; return fac[n] * inv[m] % mod * inv[n - m] % mod; } ll get(ll a, ll b, ll c, ll d) { returnC(c - a + d - b, c - a) % mod; } int n, k, l; constint N = 1e6 + 100; int f1[N]; int f2[N]; intfind(int x, int *fa) { return fa[x] == x ? x : fa[x] = find(fa[x], fa); } voidmerge(int x, int y, int *fa) { fa[find(x, fa)] = fa[find(y, fa)]; } map<pair<int, int>, int> mp; intmain() { int n; cin >> n; vector<int> a(n + 1); map<int, int> mp; for (int i = 1; i <= n; i++) { cin >> a[i]; mp[a[i]]++; } if (n & 1) { bool flag = 0; if (mp[0] != 1) { cout << 0 << '\n'; return0; } for (int i = 2; i <= n - 1; i += 2) { if (mp[i] != 2) { cout << 0 << '\n'; return0; } } cout << quickPow(2, n / 2) << '\n'; } else { for (int i = 1; i <= n; i += 2) { if (mp[i] != 2) { cout << 0 << '\n'; return0; } } cout << quickPow(2, n / 2) << '\n'; } return0; }