首页 > 其他分享 >QOJ 8171 - Cola

QOJ 8171 - Cola

时间:2024-02-10 15:12:06浏览次数:23  
标签:8171 le limits 对于 dfrac prod QOJ Cola

我们假设目前 B 知道排列 \(p\) 的前 \(x\) 位是多少,那么下一次,B 的最优策略是:

  • 对于 \(i\le x\) 的部分,令 \(q_i=p_i\)。
  • 对于 \(i=x+1\) 的部分,令 \(q_i\) 为任一 \(p_i\) 可能取到但没有被猜过的值。
  • 对于 \(i>x+1\),随机乱排剩余的 \(q_i\)。

考虑设 \(c_i\) 表示第 \(i\) 次询问后 B 确定了 \(p\) 的前多少位。那么对于一组 \(\{c_i\}\),存在一种猜数的过程对应这个 \(c_i\) 的充要条件是,对于任意 \(0\le i<n\),\(c_{i}\le c_{i+1}\),序列 \(c\) 中 \(i\) 的出现次数不超过 \(n-1-i\),因为当你确定了序列的前 \(i\) 位以后,\(i+1\) 位置上的值只有 \(n-i\) 种可能性,再问 \(n-1-i\) 次以后只剩唯一值了,下一步必然猜对。

然后我们发现一件事,就是对于所有合法的 \(\{c_i\}\),猜数过程恰好对应这组 \(\{c_i\}\) 的概率是相同的,都是 \(\dfrac{1}{n!}\)。对于一位 \(i\),假设 \(i\) 在 \(c\) 数列中出现了 \(j\) 次,那么概率是 \(\dfrac{n-i}{n-i+1}·\dfrac{n-i-1}{n-i}·\cdots·\dfrac{n-i+1-j}{n-j+2-j}·\dfrac{1}{n-i+1-j}=\dfrac{1}{n-i+1}\),把它们乘起来刚好是 \(\dfrac{1}{n!}\)。

于是问题变为怎么求合法的 \(\{c_i\}\) 的数量。

发现这个问题可以被转化为格路计数问题,即求有多少个 \((0,0)\to(m-1,n)\) 的路径,满足对于所有 \(0\le i<n\),路径在第 \(i\) 列上的部分的长度不超过 \(n-i-1\)。考虑容斥,钦定一些列 \(i\) 满足路径在第 \(i\) 列上的部分的长度至少为 \(n-i\),假设这些 \(i\) 组成的集合为 \(S\),令 \(s=\sum\limits_{x\in S}n-x\),那么实际上可以看作网格图缩短了 \(s\) 行,方案数就是 \(\dbinom{n+m-1-s}{n}\),再乘以容斥系数 \((-1)^{|S|}\) 就是这个 \(S\) 对答案的贡献。

用多项式的语言来刻画这个过程:令 \(P(x)=\prod\limits_{i=1}^n(1-x^i)\),那么答案为 \(\sum\limits_{s=0}^{m-1}\dbinom{n+m-1-s}{n}·[x^s]P(x)\)。因为本题 \(n\) 高达 \(10^7\),所以无法分治 NTT,但注意到因为 \(m\le n\),所以对于 \(s\le m-1\),有 \([x^s]\prod\limits_{i=1}^n(1-x^i)=[x^s]\prod\limits_{i=1}^{\infty}(1-x^i)\),而后者使用五边形定理可以 \(O(\sqrt{n})\) 求出。所以总复杂度就降至 \(O(n+m)\)。

标签:8171,le,limits,对于,dfrac,prod,QOJ,Cola
From: https://www.cnblogs.com/tzcwk/p/18012876/qoj-8171

相关文章

  • P2985 [USACO10FEB] Chocolate Eating S
    原题链接题解看到使最不开心的一天尽可能的开心,这是要使最小值尽可能的不小,二分思路由此而来,剩余的就是贪心模拟最坏时间复杂度约为$O(d·sum(H))≈5·10^4·log2(5·10^{10})≈1777060.45$坑点:剩下的巧克力要在最后一天全部吃完\(Code\)#include<bits/stdc++.h>#d......
  • qoj8171 Cola 题解
    题目链接点击打开链接题目解法很牛的题!!!会不了一点令\(pref_i\)表示第\(i\)轮知道了前缀\([1,...,i]\)考虑怎样的\(pref\)序列是合法的(即采用最优策略):\(pref_0=0\)\(\forall_{i\in[0,n-1]}\;pref_i\lepref_{i+1}\)\(pref\)中\(x\)的出现次数\(\len-x-1\),因......
  • [USACO10FEB] Chocolate Eating
    原题链接很典型的二分答案题目。但是新颖点是他要输出每块巧克力在哪一天吃,很多人(包括我自己)就可能想当然的直接在累加的时候处理,如下:for(inti=1;i<=d;i++){sum/=2;while(sum<m){if(cnt>n)returnfalse;sum+=a[cnt];......
  • QOJ 1963 Squid Game
    令\(a\leb\lec\)。这显然是可以通过交换得到的。考虑若\(a=1\)怎么做。考虑到若把\(b\)或者\(c\)给\(a\),\(a\)就会翻倍。那就把\(b\)拆成二进制,考虑让\(b\)变为\(0\)。从低位到高位,如果\(b\)这一位为\(1\)就让\(b\)给\(a\),否则\(c\)给\(a\)。那......
  • QOJ7206 Triple
    QOJ传送门大分讨恶心题。首先施容斥,变成求\(\sum|AB|>\max(|AC|,|BC|)\)。遇到这种三个点的路径问题,可以找出一个点\(X\),使得\(A,B,C\)在\(X\)的不同子树内,也就是\(A\toB,A\toC,B\toC\)的路径的唯一一个交点\(X\)。那么:\[[|AB|>\max(|AC|,|BC|)]=......
  • QOJ 2486 Build the String
    考虑当字符串全为\(\texttt{b}\)时,可以通过\(\text{copy}\)\(n-1\)次再\(\text{fuse}\)\(n\)次。这启发从连续段来做,先按顺序构造出一个个连续段,最后\(\text{fuse}\)合为这个串。若第一个连续段为\(\texttt{a}\),则可以通过\(\text{swap}\)事先交换\(\texttt{ab}......
  • QOJ 4996 Icy Itinerary
    先转化题目条件。发现把\(n\)个点划分为\(2\)个点集,满足其中一个点集存在哈密顿路,另一个点集在补图中存在哈密顿路和原问题是等价的。令直接存在哈密顿路的点集为\(X\),其路径端点分别为\(S_X,T_X\);补图中存在哈密顿路的点集为\(Y\),路径端点分别为\(S_Y,T_Y\);考虑\(......
  • Colab使用
    导入drive资源fromgoogle.colabimportdrivedrive.mount('/content/drive')也可以在文件夹附近点按钮导入导入后,手动切换到工作目录,ipynb代码里一些from等就可以用了。!%区别fromhereThedifferenceisthis:Whenyourunacommandwith!,itdirectlyexecutes......
  • Chocolate
    只因生日!祝她生日快乐!(1班晚自修祝她福如东海寿比南山,代行我职,这是好的剩下的都是闲话力:非常喜欢蔡绿喜糖里的夹心巧克力,鉴定为比德芙强114514倍。晚自修出逃回寝室睡了12h,现在精神状态良好。政治会不了一点,直接载入史册!(甚至还用考试时间写语文,这是好的)体育大概率能A,太讽......
  • 在Colab上测试Mamba
    我们在前面的文章介绍了研究人员推出了一种挑战Transformer的新架构Mamba他们的研究表明,Mamba是一种状态空间模型(SSM),在不同的模式(如语言、音频和时间序列)中表现出卓越的性能。为了说明这一点,研究人员使用Mamba-3B模型进行了语言建模实验。该模型超越了基于相同大小的Transfor......