AtCoder Beginner Contest 172 (C题前缀和 + 二分,D题筛因子,E题容斥定理)
AB水题,
C - Tsundoku
题目描述
有两摞书,一摞有
挺明显的前缀和处理,枚举从第一摞书中读多少本,余下的时间用二分查找能在第二摞书中读多少本。
ll n, m, k, a[1 << 18], b[1 << 18];
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
cin >> n >> m >> k;
for (int i = 1; i <= n; ++i) cin >> a[i], a[i] += a[i - 1];
for (int i = 1; i <= m; ++i) cin >> b[i], b[i] += b[i - 1];
ll cnt = 0;
for (ll i = 0; i <= n; ++i)
if (k >= a[i]) cnt = max(cnt, upper_bound(b + 1, b + m + 1, k - a[i]) - b - 1 + i);
cout << cnt;
}
D - Sum of Divisors
题目描述
设
先筛出每个数的
const int N = 1e7 + 10;
ll a[N], n ,cnt;
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
cin >> n;
for (int i = 1; i <= n; ++i) for (int j = i; j <= n; j += i) a[j] += 1;
for (int i = 1; i <= n; ++i) cnt += i * a[i];
cout << cnt;
}
E - NEQ
题目描述
给出
1.
2.
3.
4.
没想出来,参考了一下其他的思路:
, 个数排 个位置,即合法的 的个数; ,对于每个合法的 来说,合法的 的个数; ,由容斥定理; ,从 的 个位置中选 个位置与 中的数相等,余下 个位置共有 个数可选;- 当
, ,即合法 的个数; - 当
, ,即代表对 来说不合法 的个数; - 所以右式即用容斥原理从合法的
中减去对 来说不合法的 的个数。
- 当
using ll = long long;
const int N = 5e5 + 10, mod = 1e9 + 7;
ll fac[N];
ll qpow(ll a, ll b) {
ll ans = 1;
for (; b; b >>= 1, a = a * a % mod)if (b & 1) ans = ans * a % mod;
return ans;
}
void init() {
fac[0] = 1;
for (int i = 1; i < N; ++i) fac[i] = fac[i - 1] * i % mod;
}
ll inv(ll n) {return qpow(n, mod - 2);}
ll A(ll n, ll m) {return fac[n] * inv(fac[n - m]) % mod;}
ll C(ll n, ll m) {return fac[n] * inv(fac[m]) % mod * inv(fac[n - m]) % mod;}
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
init();
int n, m; cin >> n >> m;
ll sum = 0;
for (int i = 0; i <= n; ++i) {
sum += qpow(-1, i) * C(n, i) * A(m - i, n - i) % mod;
sum = (sum + mod) % mod;
}
cout << A(m, n) * sum % mod;
}
分类:
刷题笔记: AtCoder
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 5. Nginx 负载均衡配置案例(附有详细截图说明++)
2020-08-07 CH0304 IncDec Sequence (差分)
2020-08-07 浅谈递归的机器实现
2020-08-07 算法学习笔记:2-SAT
2020-08-07 0x01 基本算法-位运算