首页 > 其他分享 >[ARC164D]1D Coulomb 题解

[ARC164D]1D Coulomb 题解

时间:2023-10-25 22:11:19浏览次数:37  
标签:ARC164D 消失 题解 sum texttt 小球 1D 2N

[ARC164D]1D Coulomb 题解

题意

在长为 \(2N\) 的数轴上放有 \(2N\) 个小球,第 \(i\) 个小球在坐标 \(i\) 的位置。 \(2N\) 个小球中有 \(N\) 个小球带正电,有 \(N\) 个小球带负点。记第 \(i\) 个小球带 \(a_i\) 单位电荷(\(a_i\in\{1,-1\}\)),小球之间受到力的作用,第 \(i\) 个小球受到的力的大小 \(F_i=(\sum_{j=1}^{i-1}a_j-\sum_{j=i+1}^{2N}a_j)\times a_i\)。小球会进行运动,运动规则如下:

  1. 当 \(F_i>0\) 时第 \(i\) 个小球以每单位时间 \(1\) 单位长度的速度匀速向右运动。
  2. 当 \(F_i<0\) 时第 \(i\) 个小球以每单位时间 \(1\) 单位长度的速度匀速向左运动。
  3. 当 \(i\) 号球和 \(j\) 号球在某一时刻出现在同一位置并且 \(a_i\not=a_j\) 时 \(i\) 号球和 \(j\) 号球同时消失,记第 \(i\) 个球在坐标 \(x_i\) 处消失。

分析可知不会有三个小球同时出现在同一个位置,并且最终所有小球均会消失。

现在给出一个长为 \(2N\) 的字符串,当第 \(i\) 个字符为 \(\texttt{+}\) 时表示 \(a_i=1\),第 \(i\) 个字符为 \(\texttt{-}\) 时 \(a_i=-1\),第 \(i\) 个字符为 \(\texttt{?}\) 时表示 \(a_i\) 不确定。对于所有合法的可能的小球的电性情况求出 \(\sum_{i=1}^{2N}\left |i-x_i\right |\) 的值的和,答案对 \(998244353\) 取模。

\(N\le 3000\)。

题解

先考虑没有问号时如何统计答案:

由于两个小球 \(i,j\) 当且仅当在 \(a_i+a_j=0\) 时相撞才会消失,所以小球的消失对于其他小球受力的大小无影响,也就是说小球运动的方向在消失之前不变。

进一步分析可以发现,小球之间的相撞消失类似于括号匹配,例如:

++----+-+-++

这个序列可以分成两段恰好电荷和为 \(0\) 的子段:

++--,--+-+-++

对于第一段我们将 \(\texttt{+},\texttt{-}\) 分别视作 \(\texttt{(},\texttt{)}\)。对于第二段我们将 \(\texttt{+},\texttt{-}\) 分别视作 \(\texttt{)},\texttt{(}\)。然后就可以匹配了,具体地:\(1-4,2-3,5-12,6-7,8-9,10-11\) 分别进行匹配。

形式化地来说:我们首先将整个序列划分成若干个不相交的极小的电荷和为 \(0\) 的子段,然后对于每一个子段 \(s_{l\cdots r}\),将 \(s_l\) 这种字符视为 \(\texttt{(}\),另一种字符(即 \(s_r\) 这种字符)视为 \(\texttt{)}\),然后进行括号匹配,匹配上的两个小球相撞消失。那么答案就是所有配对的小球的坐标差的和。

分析完了相撞的性质,考虑怎样统计答案更方便。直接统计不好做。所以套路的改变求和方式,我们考虑 \([i,i+1]\) 这个单位长度被多少对配对的小球经过,记为 \(f_i\)。换句话说 \(f_i\) 就是前 \(i\) 个球与后 \(n-i\) 个球配对的对数,观察可以发现:

\[f_i=\left|\sum_{i=1}^{i}a_i\right| \]

那么答案就是 \(\sum_{i=1}^{2N-1}\left|\sum_{j=1}^{i}a_i\right|\)。

以上是对于没有 \(\texttt{?}\) 的情况的答案的计算,下面说一下有 \(\texttt{?}\) 了怎么做。

我们设 \(g_{i,j}\) 表示 \(\sum_{k=1}^{i}a_k=j\) 的方案数,那么答案就是:

\[\sum_{i=1}^{2N-1}\sum_{j=-N}^{N}g_{i,j}\times \left|j\right| \]

而 \(g_{i,j}\) 可以组合数计算,具体地:

当前 \(i\) 个字符中有 \(x\) 个 \(\texttt{+}\),\(y\) 个 \(\texttt{-}\),\(z\) 个 \(\texttt{?}\)。整个字符串中有 \(X\) 个 \(\texttt{+}\),\(Y\) 个 \(\texttt{-}\),\(Z\) 个 \(\texttt{?}\),那么就有:

\[g_{i,(x+k)-(y+z-k)}=\binom{z}{k}\binom{Z}{N-X-k} \]

其中 \(k\) 是枚举 \(z\) 个 \(\texttt{?}\) 中有 \(k\) 个 \(\texttt{?}\) 电荷量为正。

本题到这里就结束了,复杂度 \(\mathcal{O}(n^2)\),代码很短

标签:ARC164D,消失,题解,sum,texttt,小球,1D,2N
From: https://www.cnblogs.com/zyc070419-blog/p/17788246.html

相关文章

  • P3214 [HNOI2011] 卡农 题解
    感觉不是很麻烦,可能就组合排列转化绕一点。。。抽象化题意给定\(n\)个元素,从中选出\(m\)个集合,要求:集合不为空,集合里不能有相同的元素\(m\)个集合都互不相同所有元素被选出的次数为偶数求方案数,并对\(100000007\)取模凭感觉是DP+组合数设\(dp[i][0/1]\)......
  • P6109 [Ynoi2009] rprmq1 题解-猫树+Segment Tree Beats
    20231025P6109[Ynoi2009]rprmq1题解-猫树+SegmentTreeBeats不愧是学长出的题。。。让我更深刻地理解了猫树。Statement传送门有一个\(n\timesn\)的矩阵\(a\),初始全是\(0\),有\(m\)次修改操作和\(q\)次查询操作,先进行所有修改操作,然后进行所有查询操作。一次修......
  • P5156 [USACO18DEC] Sort It Out P 题解
    题意有一个长度为\(n\)的排列\(a_1,a_2,\cdots,a_n\),选出\(\{1,2,\cdots,n\}\)的一个子集,对这个子集中的数依次进行如下操作:设当前数为\(v\),则若\(a_v\)大于\(a_{v+1}\)(如果有的话),就交换。如果小于,则若\(a_v<a_{v-1}\)(如果有的话),就交换。重复上述操作知道\(a_{v-1}<......
  • CF1555D题解
    分析注意到字符集大小很小,那么很容易就会产生回文,那么合法序列的种类就会比较有限。思考对于不同长度而言合法序列的种类,显然长度为\(1\)时无回文,长度为\(2\)只要两个字符不同就无回文。尝试扩展到长度为\(3\)时的情况,显然\(s_1\neqs_2\),\(s_2\neqs_3\)。发现\(s......
  • P9669 [ICPC2022 Jinan R] DFS Order 2 题解
    P9669[ICPC2022JinanR]DFSOrder2题解简要题意给定一棵\(n\)个节点的树,根节点是\(1\)。从根节点开始深度优先搜索这一棵树,dfs序是在搜索过程中访问节点的顺序。对于每一个节点\(v\),你要给出有多少种不同的dfs序,使得\(v\)出现在第\(j\)个位置。答案对\(99824......
  • P9769 HUSTFC 2023 简单的加法乘法计算题 题解
    动态规划#单调队列Question给出一个\(x=0\)通过一些操作把\(x\)变成\(y\)。有两个集合\(A,B\)。\(A\)包含了\(n\)个元素,分别是\(1-n\)的所有正整数,集合\(B\)给出\(m\)个元素,可以进行一下函数选择\(A\)中的一个元素\(a\),令\(x\)加上\(a\)选择\(B\)......
  • CF1555B题解
    分析放桌子有两种放法,一种是上下放,一种是左右放,分别计算最小值取\(\min\)即可。注意到原题使用的是平面直角坐标系,于是将原图顺时针旋转\(90^{\circ}\),将下标表示方式与代码中下标的表示方式统一,相应的,左下角和右上角也变成了左上角和右下角。代码#include<iostream......
  • Kettle链接SqlServer+Jdk8 问题解决
     这两天要弄个ldap对接,客户端server2016,数据库那边winserver2008,数据库也是2008最开是链接出现类似这样的,更换了链接mssql的Jar版本,从12换到了6的老版本,没用。  后来更改网上提示的  C:\ProgramFiles\Java\jre-1.8\lib\security\java.security文件jdk.tls.......
  • B1024 题解
    本着10月杂题题解只记重量级的原则,再加上这个系列好久没更新了,搞一发。原题链接发挥还可以的一场,至少比csp-s发挥的好。T1智慧概率题,考场差点出来,30pts。T2简单计数题,之前几场都卡T2,终于出来一次,100pts。T3简单数据结构题,打的30pts暴力,但是有50pts。T4智慧......
  • CF1572F Stations 题解-Segment Tree Beats
    20231025CF1572FStations题解-SegmentTreeBeats吉司机线段树好题!!!CF3400。传送门Statement有\(n\)个广播站,第\(i\)个广播站高度为\(h_i\),范围为\(w_i\)。初始\(h_i=0,w_i=i\)。广播站\(i\)能向广播站\(j\)传递消息,当且仅当\(i\lej\lew_i\),且\(h_i>\max\lim......