首页 > 其他分享 >AT_abc_G选刷

AT_abc_G选刷

时间:2024-06-20 16:20:52浏览次数:11  
标签:le 题目 sum solution 选刷 序列 abc 大意

AT_abc_G选刷

目录

ABC332G

题目大意

给定n种球,每种分别有\(a_i\)个,有m个盒子,每个盒子可以放\(b_i\)个球。特殊的,第i种球放在第\(j\)个箱子的最大数量为\(i\times j\),问最后可以放最多可以放几个球(\(n\le500,m\le5e5\))

solution

首先可以非常简单的建出网络流,二分图,原点向第i个点连\(a_i\)的边,第j个点向汇点连\(b_i\)的边,\((i,j)\)连\(i\times j\)的边,最大流是答案。然后就最大流转最小割,求\(\sum_{i\in A}a_i+\sum_{j\in B}b_i+\sum_{i\in\complement A}\sum_{j\in\complement B}j\)

一开始想了一个\((n+m)n^2m^2\)的dp,表示\(f_{i,j}\)表示A集合中下标和为i,B集合中下标和为j的最小值,背包转移

然后考虑优化一下,观察一下,n比较小,设\(f_i\)表示A集合中下标和为i,\(a_i\)的最小和,然后对于每个j,贡献是\(min(i\times j,b_j)\),最后按\(b_j/j\)排序,那么贡献就被分成两部分,用双指针+前缀和维护即可

ABC331G

题目大意

有 \(M\) 种颜色,用 \(1\sim M\) 编号,每次抽奖抽中第 \(i\) 种颜色的概率为 \(\frac{c_i}{N}\),其中 \(\sum c_i=N\),求抽中每种颜色至少一次的期望次数。

\(1\le M\le N\le 2\times 10^5\)。

solution

求至少一次的期望,就是求每个颜色第一次被抽中的时间的最大值

考虑min-max容斥

\[max(S)=\sum_{T\subseteq S}(-1)^{T+1}min(T) \]

在期望上也适用,容易看出\(min(S)=\dfrac N{\sum_{i\subseteq S}c_i}\)

可以把S集合中的颜色看成 \(c=\sum_{i\subseteq S}c_i\) 的新颜色,然后解方程即可

考虑如何求max,把N提出来,把每个颜色看作多项式\((1-x^{c_i})\),进行分治NTT,用系数统计答案即可

ABC328G

题目大意

给定两个长度为 \(n\) 的序列 \(a,b\) 和一个数字 \(c\),有两种操作。

  • 把 \(a\) 分成任意 \(x\) 个子段,并任意摆列他们的顺序,组成新的 \(a\) 序列,代价为 \(c\times (x-1)\)。

  • 把 \(a_i\) 加上 \(x\)(\(x\) 为任意整数)代价是 \(|x|\)。

问把 \(a\) 变成 \(b\) 的最小代价, \(n\le 22\)。

solution

根据n比较小可以想到状压,考虑朴素的转移要设两维,分别表示状态和上一个填什么,然后转移,我们发现空间和时间都多了一个n,

考虑如何优化掉一个n,我们考虑设 \(f_s\) 表示s状态,然后暴力枚举全部是0的区间进行转移

证明一下时间复杂度,通过计算转移次数证明:每次转移时枚举一个全部是0的区间,所以有\((n-len+1)2^{n-len}\) 个

\[\sum_{len=1}^n(n-len+1)2^{n-len}=(n-1)2^n+2 \]

ABC326G

题目大意

有 \(n\) 个技能,\(m\) 个成就。每个技能有一个等级,初始均为 \(1\)。

你可以用 \(c_i\) 块钱令技能 \(i\) 提升一个等级,该操作没有次数限制。

第 \(i\) 个成就达成的条件是对于 $\forall j\in [1,n],level_j \ge L_{i,j} $,其中 \(level_j\) 表示第 \(j\) 个技能的等级。达成成就 \(i\) 后,你会获得 \(a_i\) 元的奖励。

请最大化获得的奖励与所需成本之差,并输出该值。

\(n,m\le 50,\, 1\le L_{i,j}\le 5,\, 1\le a_i,c_i\le 10^6\)。

solution

根据等级比较小,可以想到拆点建图

从升级越多,奖励越多,转化为升级越多,不能享受的奖励越少

问题就变成 升级费用+不能得到的奖励 的最小值,用总奖励减去它,考虑最小割

如下图建图,黑边表示流量无限,蓝边的流量是升级的钱,红线的流量是奖励的钱。对于每个技能,拆成5个点,对于每个成就建一个点。

然后跑最小割即可

ABC324G

题目大意

给定一个长度为 \(n\) 的排列。有两种操作:

  1. 从序列的第 \(x\) 个位置将序列 \(s\) 分成两部分,其中前一部分(含 \(s\))为新的序列 \(s\),后面一部分为序列 \(s\)
  2. 按照值域,不改变原序列顺序从值 \(s\) 分为两部分,小于等于的为 \(s\) ,大于的为 \(i\)

每次操作完后询问序列 \(i\) 的长度

solution

考虑转化为数点问题,把每个数变成 \((i,a_i)\) 的点,因为两个分别是从两维割开矩形,所以序列长度就是矩形的点数

考虑如何动态维护矩形中第i个点和值,于是想到主席树,那么第二个操作就很简单的改变矩形范围即可

第一个操作还要找到矩形中第i个点,所以要二分找

ABC350G

题目大意

现有一张 \(n\) 结点的无向图,初始时没有边,接下来有 \(Q\) 次操作:

  1. 加入一条连接 \(u\to v\) 的边。保证操作前 \(u,v\) 不在同一个连通块内,换言之这张图总是森林。
  2. 询问是否存在和 \(u,v\) 都相邻的点,若存在输出编号,若不存在输出 \(0\)。

solution

考虑图一定为森林,我们可以维护出树的形态:

设 \(fa_i\) 表示 \(i\) 的父亲,那么连接 \(u\to v\) ,我们可以将 \(u\) 所在的树从根到 \(u\) 修改,使其以 \(u\) 为根,然后再 \(fa_u=v\)

我们考虑用启发式合并维护,时间复杂度为 \(O(n\log n)\)

有了 \(fa\) 数组,这道题目就是简单的

tips

关于这道题目的暴力,我们可以想到 \(O(\frac {n^2} {w})\)

鉴于一种很典的思想,我们把 \(deg\ge\sqrt n\) 的点记为大点,其他为小点,大点和大点之间的直接维护,大点和小点之间的用桶,小点和小点之间的直接暴力

不过本题的空间过不了

ABC352G

题目大意

有 \(n\) 种袜子,每种袜子有 \(a_i\) 只,问期望取出几只袜子能凑成一双

solution

因为:

\[\sum iP(x=i)=\sum P(x\ge i) \]

所以我们考虑算出第i天还没结束的概率,相加即为答案

然后考虑 \(P(x\ge i)\) 如何计算,知道:

\[P(x\ge i)=\cfrac{\sum_{x_1\neq x_2...\neq x_i} a_{x_1}a_{x_2}...a_{x_i}}{\binom{i}{sum}} \]

分子我们可以发现是 \([x^i]\prod_{j=1}^n(1+a_jx)\)

于是用分治NTT解决

标签:le,题目,sum,solution,选刷,序列,abc,大意
From: https://www.cnblogs.com/zhy114514/p/18258905

相关文章

  • ABC 328F Good Set Query
    题意直接看题吧https://atcoder.jp/contests/abc328/tasks/abc328_f题解本题主要考了带权并查集,具体实现是在路径压缩的时候顺便维护一下边权(其中w[i]表示点i距离它的祖先的边权之和,fa[i]是点i的祖先)。依次遍历每一次询问,如果询问中的a与b拥有公共祖先,也就是在同一个并查集里......
  • 【国赛赛题详解】2024年数学建模国赛ABCDEF题(点个关注,后续会更新)
     您的点赞收藏是我继续更新的最大动力!一定要点击如下的蓝色字体链接,那是获取资料的入口!点击链接加入群聊【2024国赛资料合集】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=eQt5WRIvc5-fogZRrrahAhbqDa2nKfW8&authKey=%2BqQfThTxNnhw5LGJFRIcneF8JXBj1ufd2K01UpKPrpcgkKDskF......
  • ABC358
    E-AlphabetTileshttps://atcoder.jp/contests/abc358/tasks/abc358_e方案数DP。先看摆花(五年前做过)。记\(f_{i,j}\)表示摆完前\(i\)种花,目前已经有了\(j\)盆花的方案数。可以考虑先枚举当前摆第\(i\)种花,然后再枚举摆完第\(i\)种花之后,目前已经有了\(j\)盆......
  • ABC353F 分讨
    回来补补题。分析:我先考虑\(k\)很大的时候,大块和大块间的移动,我们不得不尽量避免小块:我们容易发现这样时是最优的,可以发现就是在斜着走,也就是典型的切比雪夫距离。斜着走一次需要经过两条边,所以花费是两倍的切比雪夫距离。要是起点和终点不在大块上呢?首先考虑它们不在同一......
  • 【国赛赛题详解】2024年数学建模国赛ABCDEF题(点个关注,后续会更新)
     您的点赞收藏是我继续更新的最大动力!一定要点击如下的蓝色字体链接,那是获取资料的入口!点击链接加入群聊【2024国赛资料合集】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=eQt5WRIvc5-fogZRrrahAhbqDa2nKfW8&authKey=%2BqQfThTxNnhw5LGJFRIcneF8JXBj1ufd2K01UpKPrpcgkKDskF......
  • 【国赛赛题详解】2024年数学建模国赛ABCDEF题(点个关注,后续会更新)
    您的点赞收藏是我继续更新的最大动力!一定要点击如下的蓝色字体链接,那是获取资料的入口!点击链接加入群聊【2024国赛资料合集】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=eQt5WRIvc5-fogZRrrahAhbqDa2nKfW8&authKey=%2BqQfThTxNnhw5LGJFRIcneF8JXBj1ufd2K01UpKPrpcgkKDskFkr......
  • 「杂题乱刷」AT_abc358_g
    代码恢复训练2024.6.15(补)链接(luogu)链接(atcoder)abc最水的G了吧。你发现,你最后肯定全在在同一个点上不动,而且你一定可以在\(n\timesm\)回合内走到这个点,因此我们直接\(dp_{i,x,y}\)表示走\(i\)步到\((x,y)\)这个格子所能得到的最大值即可。时间复杂度\(O(......
  • [题解]ABC358E Alphabet Tiles
    AtCoder~E-AlphabetTilesLuogu~ABC358EAlphabetTiles题意简述给定正整数\(K\)和\(C_1,C_2,\dots,C_{26}\)。请求出长度在\(1\)到\(K\)之间,满足下列条件的字符串个数(取模\(998244353\)):该字符串全由大写字母组成。对于\(1\lei\le26\),下面条件成立:设\(a......
  • ABC358
    A.WelcometoAtCoderLand模拟B.TicketCounter模拟代码实现#include<bits/stdc++.h>#definerep(i,n)for(inti=0;i<(n);++i)usingnamespacestd;intmain(){intn,a;cin>>n>>a;vector<int>t(n);......
  • ATcoder ABC 358 补题记录(A~D,G)
    A直接模拟即可。#pragmaGCCoptimize(3)#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintN=1000100,mod=998244353;inta[N];signedmain(){strings,t;cin>>s>>t;if(s=="AtCoder"&&t==&qu......