Atcoder agc040简要题解

本文提供了Atcoder AGC040比赛的题目A - ><、B - Two Contests、C - Neither AB nor BA、D - Balance Beam、E - Prefix Suffix Addition、F - Two Pieces的简要题解。涵盖了每道题目的核心思路和解决方案,涉及动态规划、二分查找、组合数学等多种算法,适合竞赛编程爱好者参考。
摘要由CSDN通过智能技术生成

补一下最近几场的agc。

A - ><

B - Two Contests

C - Neither AB nor BA

先考虑没有 ′ C ′ 'C' C的情况。注意到如果存在多对 ′ A A ′ 'AA' AA ′ B B ′ 'BB' BB且有解,随便消去一对都可以得到一组合法解。那么考虑将 2 k − 1 2k-1 2k1 2 k 2k 2k分一组,如果相同直接消掉,易证有解当且仅当剩下的 ′ A B ′ 'AB' AB ′ B A ′ 'BA' BA数目相同。
注意到我们可以将 ′ C ′ 'C' C任意填成 ′ A ′ 'A' A ′ B ′ 'B' B。那么同样分组,易证合法当且仅当 ′ A B ′ ≤ ′ B A ′ + ′ B C ′ + ′ C A ′ + ′ C C ′ 'AB'\leq 'BA'+'BC'+'CA'+'CC' ABBA+BC+CA+CC ′ B A ′ ≤ ′ A B ′ + ′ A C ′ + ′ C B ′ + ′ C C ′ 'BA'\leq 'AB'+'AC'+'CB'+'CC' BAAB+AC+CB+CC
注意到两个条件至多只有一个会不满足,于是可以选择计算反面情况容斥一下。以 ′ A B ′ 'AB' AB为例,枚举 ′ A B ′ + ′ B A ′ + ′ B C ′ + ′ C A ′ + ′ C C ′ 'AB'+'BA'+'BC'+'CA'+'CC' AB+BA+BC+CA+CC的值 k k k,那么可以变成计算一个上指标为 k k k的组合数前缀和。我们如果按 k k k的值从小往大算,可以很方便地用加法公式递推。
时间复杂度 O ( N ) \mathcal O(N) O(N)

#include <bits/stdc++.h>
#define FR first
#define SE second
#define MOD 998244353
#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值