首页 > 其他分享 >【题解】ARC157

【题解】ARC157

时间:2023-02-26 10:56:17浏览次数:33  
标签:边界 题解 sum dbinom YY ARC157 节点 rightarrow

Atcoder Regular Contest 157

A XXYYX

可以考虑得到 \(a,b,c,d\) 后如何构造,实际上是先根据 \(b,c\) 铺出形如 XYXYXYXYX 的序列,之后每存在一个 XXYY 就填进去一个 XY。于是能构造出上面序列的充要条件为 \(|b-c|\le 1\),还要特判 \(b=c=0\) 的情况。

B XYYYX

X 的个数为 \(cnt\)。

  • \(cnt\le k\) 时,操作应当是将一些 X 换成 Y。发现形如 XXYXXXYXX 的序列中,改变“贴着” YX 可以每次获得 \(1\) 的贡献,而填满一个不在边界的 X 连续段能额外获得 \(1\) 的贡献。我们希望能填满的非边界连续段尽量多,只需将边界 X 连续段放在最后,其他的按照长度升序排序,贴边填即可。

  • \(cnt>k\) 时,操作应当是将所有 X 换成 Y,再将一些 Y 换成 X,贪心的策略应当正好相反,改变"贴着” XY 会每次削去 \(1\),而将一个不在边界的 Y 连续段完全改变会额外削去 1我们希望被削去的连续段尽量少,而不在边界的连续段是更优秀的,只需将边界 Y 连续段放在最前,其他的按照长度降序排序,贴边删即可(与上面相反,这次有边界从边界删)。

C YY Square

\(n^2\) 的答案不能拆成每个点的贡献,考虑 \(n^2=(n-1)^2+2(n-1)+1\),加上 \(\sum\) 也是可以维护的,形如 \(\sum n^2=\sum (n-1)^2 +2\sum (n-1)+\sum 1\)。

于是只需要维护一个前缀的 \(\sum n^2\) 以及 \(\sum n\),分别设成 \(f_{i,j}\) 与 \(g_{i,j}\)。

最基本转移:

\[f_{i-1,j}+f_{i,j-1}\rightarrow f_{i,j} \]

\[g_{i-1,j}+g_{i,j-1}\rightarrow g_{i,j} \]

当 \((i,j)\) 为 Y 且 \((i-1,j)\) 为 Y 时,可以有:

\[f_{i-1,j}+\dbinom{i+j-3}{i-2}\rightarrow f_{i,j} \]

\[g_{i-1,j}+2\times f_{i-1,j}+\dbinom{i+j-3}{i-2}\rightarrow f_{i,j} \]

同理,当 \((i,j)\) 为 Y 且 \((i,j-1)\) 为 Y 时,可以有:

\[f_{i,j-1}+\dbinom{i+j-3}{i-1}\rightarrow f_{i,j} \]

\[g_{i,j-1}+2\times f_{i,j-1}+\dbinom{i+j-3}{i-1}\rightarrow f_{i,j} \]

D YY Garden

咕。

E XXYX Binary Tree

没有 YY 的情况,说明 Y 对应节点是个独立集。

考虑一个 Y 非根节点,对 XY 有 \(1\) 的贡献;一个 Y 非叶子节点,对 YX 有 \(2\) 的贡献。

于是非叶子节点应当有 \(\dfrac{c}{2}\) 个,若 \(c\) 为奇数显然答案不合法,

若根为 x,则 Y 节点有 \(b\) 个,Y 叶子有 \(b-\dfrac{c}{2}\) 个;若根为 Y,则 Y 节点有 \(b+1\) 个,Y 叶子有 \(b+1-\dfrac{c}{2}\) 个。

考虑一个 DP,\(f_{u,k,0/1}\) 表示 \(u\) 子树内有 \(k\) 个叶子节点且 \(u\) 为 XY 时子树内含有的最多 Y 节点个数。

这样只需要判断理论 Y 节点个数是否不超过理论最大值了。

F XY Ladder LCS

咕。

标签:边界,题解,sum,dbinom,YY,ARC157,节点,rightarrow
From: https://www.cnblogs.com/SoyTony/p/Solution_on_ARC157.html

相关文章

  • AcWing 第 92 场周赛 C题 4866. 最大数量 题解
    原题链接链表+并查集乱搞做法:思路首先可以发现,想要让度数尽量大,那我们应该构造成菊花图,即下图所示:对于每个需求,我们可以知道,如果之前他们没有连在一起,那我们一定得......
  • [WC/CTS2023] 楼梯 题解
    题目链接简要题意有一块楼梯,这里指的楼梯是倒着的,正过来看上一层宽度一定小于等于这一层宽度,并且由格子组成,你需要对其进行增删和恢复某一历史版本的操作,并回答这块楼梯......
  • 适用于初学者的CF1654E Arithmetic Operations题解
    题目让我们求改变数字的最少次数,那我们转化一下,求可以保留最多的数字个数\(cnt\),再用\(n\)减一下就行,即\(res=n-cnt\)。我们先考虑两种暴力方法。第一种暴力方......
  • CF717A Festival Organization 题解
    传送门首先考虑求出长度为\(i\)的合法串的个数。很明显可以想到用dp解。设\(f_{i,0/1}\)为长度为\(i\)最后一位为\(0/1\)的合法串个数。可以很容易想到转移......
  • ABC267D 题解
    前言题目传送门!更好的阅读体验?两篇题解的代码写得很复杂,我是没有想到。思路很显然对于一个点,它必定会进入一个循环节。如何判断它进入循环节了呢?当一个点被经过两次,......
  • CF1383E 题解
    题意传送门给定一个长度为\(n\)的01串\(a\)。在一次操作中,你可以选择任意一个\(i\in[1,|a|)\),令\(a_i=\max(a_i,a_{i+1})\),然后将\(a_{i+1}\)删除。你可以进行......
  • AtCoder Beginner Contest 287 A-F 题解
    比赛链接A-Majority先这样再那样最后这样,就是这样。点击查看代码#include<cstdio>#include<algorithm>#include<cstring>usingnamespacestd;intn,a;char......
  • AtCoder Beginner Contest 286 A-G 题解
    比赛链接A-RangeSwap根据题意,分段输出。点击查看代码#include<cstdio>#include<algorithm>#include<cstring>usingnamespacestd;constintN=105;intn,......
  • P8720 [蓝桥杯 2020 省 B2] 平面切分 题解
    前言建议本题评黄,因为需要较强的数学能力。如果格式炸了去这里看哦题意给出\(N\)条直线的解析式\(y=kx+b\),求出这些直线把平面分成了几部分。思路看到这道题我们......
  • [六省联考 2017] 组合数问题 题解
    题目描述组合数\(C_n^m\)表示的是从\(n\)个互不相同的物品中选出\(m\)个物品的方案数。举个例子,从\((1,2,3)\)三个物品中选择两个物品可以有\((1,2)\),\((1,......