首页 > 其他分享 >2024.6.29

2024.6.29

时间:2024-10-23 21:13:34浏览次数:1  
标签:le 答案 2024.6 sum 29 && operatorname dp

2024.6.29

T1

题面

给定一个序列 \(a\),从中若干个数,第 \(i\) 个元素有 \(p_i\) 的概率被选中,每个元素是否被选中之间是相互独立的。如果 \(b\) 的异或和为 \(s\),称它的权值为 \(s^2\) ,求 \(b\) 的权值的期望。
答案对 \(10^9+7\) 取模。

题解

因为是异或操作,我们可以转到二进制下进行操作,有

\[\operatorname E(s^2)=\operatorname E((\sum_{i=0}^{30}s_i)^2)=\operatorname E(\sum_{i,j}s_is_j2^{i+j})=\sum_{i,j}2^{i+j}\operatorname E(s_is_j)=\sum_{i,j}2^{i+j}\operatorname P(s_i=1\land s_j=1) \]

现在将求期望变为了求概率,令 \(dp_{x,i,j,0/1,0/1}\) 表示考虑前 \(x\) 个数,第 \(i\) 和 \(j\) 为状态分别为 \(0/1,0/1\) 的概,\(令bi=a[x]二进制下第 i 位,bj=a[x] 二进制下第 j 位\\\),则

\[dp_{x,i,j,\alpha,\beta}=dp_{x-1,i,j,\alpha,\beta}\times (1-p_x)+dp_{x-1,i,j,\alpha \oplus bi,\beta\oplus bj}\times p_x \]

最后 \(\operatorname P(s_i=1\land s_j=1)=dp_{n,i,j,1,1}\),可得答案。

复杂度 \(\mathcal O(n\log^2n)\)

方法

  • 找到01变量,转期望为概率。

  • 二进制下考虑

T2

题面

给定\(n,m\),对于每个\(1≤k≤m\),计数满足以下条件的01串数量:
1.长度为\(n\),且恰有\(m\)个\(1\)和\(n−m\)个\(0\)
2.最长的\(1\)连续段长度恰好为\(k\)
注意\(m≠0\),因此最长的\(1\)连续段长度不可能是\(0\)。
答案对 \(10^9+7\) 取模。

题解

考虑容斥,利用\(等于=小于等于-小于\)的思路,转化为长度 \(\le k\),进而转化为长度 \(>k\)。我们可以再\(k+1\) 个 \(1\) 后面添一个 \(0\) 表示一段的结束

令 \(S(n,t,k,m)=(-1)^t{n-tk\choose t}{n-t(k+1)\choose m-tk}\)

假设当前有 \(t\) 段不满足,带容斥系数方案数为 \(L(k,t)=S(n,t,k+1,m)-S(n-k-1,t-1,k+1,m-k-1)\)

因为还要考虑最后一个段后面不用加 \(0\) 需要将方案数加上,但这里是有容斥系数的加上,所以为减。

令为 \(A(k)=\sum_{t=0}^{\min((n-k-1)/(k+1)+1,m/(k+1)}L(k,t)\),这是长度 \(\le k\) 的方案,最终答案为

\(A(k)-A(k-1)\)

复杂度 \(\mathcal O(n\log n)\)

方法

  • slime段模型容斥

T3

题面

在石头剪刀布中,一共有三种手势 \(R(Rock),P(Paper),S(Scissors)\):

其中 \(R\)能赢 \(S,S\) 能赢 \(P,P\) 能赢 \(R\)。

现在,我们定义 \(w(x,y)\) 是 \(x\) 和 \(y\) 中获胜的手势,特别地,如果 \(x=y\),那么\(w(x,y)=x=y\)。

我们定义一个对长度为 \(n\) 的字符串 \(s\) 的操作

\[f(s_1s_2\cdots s_n)=w(s_1,s_2)w(s_2,s_3)\cdots w(s_{n-1},s_n) \]

一个长度为 \(n\) 的序列的“最终胜者”是对其施加 \(n-1\) 次 \(f\) 操作得到的字符。

现在,给定一个长度为 \(n\) 的字符串,你需要支持 \(q\) 次操作,操作有两种:

1 k x:将这个字符串的第 \(k\) 个字符修改为 \(x\)。

2 l r:查询这个字符串的第 \(l\) 个字符到第 \(r\) 个字符形成的连续子串的"最终胜者"。

\(n,q\le 2\times 10^5,1\le k\le n,x\in\{R,P,S\},1\le l\le r\le n\)

题解

除非第一个能赢第二个,否则第一个就可以删,同理第二个与第三个,....,一直到第 \(k−1\) 个与第 \(k\) 个。因此我们只需要这么不断操作就能得到最终答案。

维护一个栈,满足第 \(i\) 个元素会输给第 \(i + 1\) 个元素。从左到右插入字符最终的栈底就是答案。

这样我们就可以 \(\mathcal O(n)\) 地解决单次询问了。

注意到在插入 \(s_i\) 时,栈顶是知道的,它显然是 \(s_{i−1}\),我们设插入第 \(i\) 个字符的栈大小为 \(f_i\),那么稍微讨论一下就可以得到:

\[f_i= \left\{\begin{aligned} &f_{i-1}+1&&s_{i-1}>s_i\\ &f_{i-1}&&s_{i-1}=s_i\\ &\max(f_{i-1}-1,1)&&s_{i-1}<s_i \end{aligned}\right. \]

这里 \(x>y\) 表示 \(x\) 能赢 \(y\)。

可以证明,答案就是最后一个 \(f_i = 1\) 的位置的 \(s\) 值。这里把取最值去掉,得到

\[f_i= \left\{\begin{aligned} &f_{i-1}+1&&s_{i-1}>s_i\\ &f_{i-1}&&s_{i-1}=s_i\\ &f_{i-1}-1&&s_{i-1}<s_i \end{aligned}\right. \]

那么答案就是取得最小的 \(f_i\) 的位置,可以证明所有最小值的位置的 \(s\) 值
都相同,所以可以随便取一个最小值位置。

这样就变成了区间修改,区间最小值,用线段树维护,总复杂度\(\mathcal O(nlogn)\)。

方法

  • 分析暴力算法过程

    可以选择先得到一种较优但不是正解的做法,分析他的过程,考虑优化

  • 数字化。

    一个结构,或者一个字符不好进行操作,可以选择用一个数字去代表,这样就可以用一些维护数字的手段进行处理。

标签:le,答案,2024.6,sum,29,&&,operatorname,dp
From: https://www.cnblogs.com/lupengheyyds/p/18498349

相关文章

  • 2024.6.27
    2024.6.27T1题面给定一个正整数序列\(a_{1\simn}\),以及一个正整数\(P\),求有多少的三元组\((i,j,k)\)满足:\(1\lei<j<k\len\)\(P=a_i\times2^{\lfloor\log_2a_j\rfloor+\lfloor\log_2a_k\rfloor+2}+a_j\times2^{\lfloor\log_2a_k\rfloor+1}+a_k\)\(多......
  • 2024.6.23
    2024.6.22T1题面给\(n\)个数,求他们的最小公倍数对\(10^9+7\)取模的结果。\(1\len\le10^3\)解法用\(\prodp^{\max}\)计算T2题面在\(n\timesn\)的地图上有若干\(1\timesk\(k>1)\)的长条,竖着的只能竖向移动,横着的只能横向移动,一号一定横着,长条不能越过,求......
  • 2024.6.25
    2024.6.25题目T2,3,4只想到了算法,却不知道具体该如何设计T1最后使用了没有证明的常数优化,导致错误T1题面给长为\(n\)的序列\(\{a\}\)和整数\(d\),你需要找到\(l,r\)使得\(l\ler\lel+d\),构造序列\(\{b\}\),其中\[b_i=\left\{\begin{aligned}l,&&a_i\lel\\a_i,&&......
  • 2024.6.20
    2024.6.20T1题面给定一个正整数\(a\),在区间\([l,r]\)中选择一个数\(b\)使得\(a\timesb\)为一个完全平方数,若不存在输出\(-1\)。共\(T\)组测试样例\(1\leT\le1000,1\lea\le10^6,1\lel\ler\le10^{12}\)解法\(\mathcalO(\sqrta)\)的去除\(a\)中的平方因......
  • 架构师之路-学渣到学霸历程-29
    常见的web服务器这一阶段,开始比较难的web服务讲解;首先介绍的就是Nginx服务,目前主流的互联网都使用的web服务这个分享暂时给与一些了解的,后续的内容会越来越精彩;同时难度也会越来越高;加油;继续做起来吧1、常见的web服务:以前主流的我们都知道是httpd服务;现在出现很多很......
  • 2024.6.18
    2024.6.18T1题面给定若干个自然数\(a_{1\simn}\)。你需要选出其中一些数,然后将你选出的数划分为若干个集合。你需要最大化每个集合mex的异或和,输出这个值。\(1\lea_i\len\le10^6\)解法找出所有的\(0\to1\to2\to\cdots\tox\)链,每一个链对应集合\(\{0,1,\cdots,......
  • 2024.6.17
    2024.6.17T1题面有一个\(n\)个节点的联通图给出一个\(n\timesn\)的矩阵,其中\(a_{i,j}\)表示节点\(i\)与节点\(j\)之间的最短路,求原图的边权之和的最小值,如果不合法,输出\(-1\)\(n\le300,1\lea\le10^9\)解法我们先利用\(floyd\)跑一下,如果存在\(a_{i,k}+a_{......
  • P5829
    buxiangzuola#include<bits/stdc++.h>usingnamespacestd;#defineF(i,a,b)for(registerinti=a,i##end=b;i<=i##end;++i)#defineUF(i,a,b)for(registerinti=a,i##end=b;i>=i##end;--i)typedeflonglongll;typedefunsignedlonglongull;templa......
  • Error: [email protected] has been disabled because it is a versioned formula! It was disab
    报错解释:这个错误信息通常出现在使用Homebrew在macOS系统上安装PHP时。报错表明Homebrew不能安装具体版本的PHP(例如[email protected]),因为这是一个版本化的公式(formula)。Homebrew中的一些软件包允许安装多个版本,并允许你在它们之间切换。这些包被称为版本化公式。如果尝试安装一个具体版本......
  • ABB机器人50296故障报警的处理方法
    ABB机器人50296故障报警的处理方法由于机器人线缆插错或者更换SMB板卡时,会出现50296这个故障报警,如下图所示,如何清除该报警?具体可参考以下内容:如下图所示,点击菜单—校准,如下图所示,点击ROB_1机械单元,如下图所示,......