首页 > 其他分享 >多校A层冲刺 NOIP2024 模拟赛 01

多校A层冲刺 NOIP2024 模拟赛 01

时间:2024-10-03 21:26:18浏览次数:8  
标签:01 prod 公式 复杂度 多校 反演 二项式 sum NOIP2024

T1 构造字符串

签到题

注意到 \(n\) 和 \(m\) 较小,直接扫一遍用并查集维护他所描述的情况,并将不同的位置记录下来,若存在不同的位置属于同一个集合则不可能构成,否则贪心从前往后取 mex 即可。

时间复杂度 \(O(nm\alpha(n))\) 。

T2 寻宝

签到题

首先先用并查集将大联通块缩点,注意到 \(m\) 很小,可直接连边然后 \(bfs\) 判断连通性。

时间复杂度 \(O(nm\alpha(nm)+qk)\) 。

T3 序列

李超线段树

注意到对于给定 \(p\) ,最大时的左右端点 \(l,r\) 是相互独立的,可以分开单独求解

记 \(A_i=\sum_{j=1}^{i}a_i\ \ \ \ B_i=\sum_{j=1}^{i}b_i\)

即求

\(右=A_r-A_p-k(B_r-B_p)\)

\(\quad\ =\max_{r>=p}\{-B_r k+A_r\}-A_p+kB_p\)

\(左=A_p-A_l-k(B_p-B_l)\)

\(\quad\ =\max_{l<p}\{B_l k-A_l\}+A_p-kB_p\)

\(相加相消:左=\max_{l<=p-1}\{B_lk-A_l\}\ \ 右=\max_{r>=p}\{-B_rk+A_r\}\)

注意到是一次函数形式,\(k\) 不大,直接上李超线段树维护即可。

但 \(p\) 不是单调的,离线下类似扫描线,扫一遍一个一个加进去即可

T4 构树

计数题,二项式反演,树类问题,Cayley公式

前置知识:

  • 二项式反演:\(f(n)=\sum_{i=n}\binom{i}{n}g(i) ⟺ g(n)=\sum_{i=n}(-1)^{i-n}\binom{i}{n}f(i)\)

  • Cayley公式:一个完全图有 \(n^{n-2}\) 棵无根生成树。

  • 扩展Cayley公式:被确定边分为大小为 \(a_1,a_2,\cdots, a_m\) 的连通块,则有 \(n^{m-2}\prod {a_i}\) 种生成树。

  • \(shrink\_to\_fit()\):释放容器内存

题目所求即恰有 \(i(i\in[0,n-1])\) 条边属于原树边的方案数,记为 \(g(i)\)。

二项式反演套路设 \(f(i)\) 为钦定 \(i\) 条边属于原树边的方案树,\(g\) 和 \(f\) 显然满足二项式反演。

问题转移到求解 \(f(i)\)

根据扩展 Cayley公式,可以状压枚举边的情况然后直接套公式计算,时间复杂度 \(O(2^nn\alpha(n))\) 期望得分 \(65pts\)。

正解考虑公式的组合意义从而设计状态进行 \(DP\)

对于一种情况 \(ans=n^{m-2}\prod_{i=1}^{m}a_i=\frac{n^m\prod_{i=1}^{m}a_i}{n^2}\) 考虑分子的组合意义,\(n^m\) 这个东西不需要考虑直接在每个连通块中将初始值设为 \(n\) 即可求解,对于 \(\prod a_i\) 即从每个连通块中恰选一个点的方案数。

那么可以设计状态 \(dp_{i,j,0/1}\) 表示在点 \(i\) 的子树中,选择了 \(j\) 条边,点 \(i\) 所在的连通块是否已经选择一个点,树上背包转移即可。

转移方程式是朴素的,按照公式转移,注意初始值设定为 \(n\) 即可

但是本题卡空间,为了节省空间考虑状态用 \(vector\) 来存,在儿子的状态转移完成后将其 \(clear()\),然后使用 \(shrink\_to\_fit()\) 做到真正的释放内存,空间复杂度 \(O(n)\)

时间复杂度分析
\(DP\) 部分:考虑每个点被合并的次数大概是 \(\sum_{o\in tree} n-size_o\) 是 \(O(n^2)\) 级别
二项式反演部分显然是 \(O(n^2)\)
即总时间复杂度为 \(O(n^2)\)

p

标签:01,prod,公式,复杂度,多校,反演,二项式,sum,NOIP2024
From: https://www.cnblogs.com/07Qyun/p/18445966

相关文章

  • 2023-11-25 Matlab和Python在气象中的常用代码 180401
    目录画图横坐标添加月份PythonMatlab画图横坐标添加月份Pythonimportmatplotlib.pyplotaspltimportpandasaspdimportnumpyasnp#准备时间和温度数据start_date=pd.to_datetime('1996-12-01')#thenextdateend_date=pd.to_datetime('1998-12-01')#the......
  • 20241001
    桌游制造我们可以对于每种图案记录拥有这种图案的有那些圆片,然后我们枚举每一个圆片,枚举这个圆片上面的图案,枚举拥有这种图案的圆片还有哪些,然后分别打上标记,如果有一个圆片明明已经有标记了,然而又要被打一次标记,那么我们可以直接输出\(NO\)如果标记都已经打完了,可还是......
  • VulnHub2018_DeRPnStiNK靶机渗透练习
    据说该靶机有四个flag扫描扫描附近主机arp-scan-l扫主目录扫端口nmap-sS-sV-n-T4-p-192.168.xx.xx结果如下StartingNmap7.94SVN(https://nmap.org)at2024-09-3019:25CSTNmapscanreportfor192.168.93.131Hostisup(0.0024slatency).Notshown:......
  • CF2018E2 Solution
    CF2018E2Solution先考虑E1的做法。首先我们如果钦定一组\(k\)条线段的话,容易求出最大组数。简单来讲就是将所有端点按照右端点排序,这样只需要考虑一个偏序,然后扫描,将区间\([l_i,r_i]\)加一,当发现某个点的值为\(k\)时,就说明分成了一组方案。此时我们一定清空,然后记录当......
  • [NOIP2015 提高组] 子串
    算法状态定义最初显然可以想到\(f[i][j][k]\)表示\(A\)串前\(i\)个,\(B\)串前\(j\)个,分割了\(k\)个子串但是这样无法递推\(k\)维于是加上一位\(f[i][j][k][0/1]\),最后一维表示是否选择\(A\)子串当前这一位,也就可以递推的计算状态转移当前位置不使......
  • 『模拟赛』多校A层冲刺NOIP2024模拟赛01
    Rank打得还可以总A.构造字符串签,但是挂了40pts。发现判条件只有相等和不相等,于是想到并查集维护连通块,将强制相同的两个位置的连通块合并,强制不同的先记下,最后统一判断。重点在细节处理,合并连通块时要将位置靠后的合并到靠前的上,注意\(LCP(x,y)=z\)在\(x+z,y+z\le......
  • [题解] [SDOI2011] 消防
    [题解][SDOI2011]消防tag:图论、树、树的直径题目链接(洛谷):https://www.luogu.com.cn/problem/P2491题目描述给定一棵\(n\)个节点的树,第\(i\)条边有边权\(z_i\)。要求找到树上一条长度不大于\(s\)的简单路径,使得不在路径上的点到该路径的最大距离最小。数据范围:\(1......
  • 多校A层冲刺NOIP2024模拟赛【衡中】
    多校A层冲刺NOIP2024模拟赛01构造字符串咕咕咕寻宝咕咕咕点击查看代码#include<bits/stdc++.h>usingnamespacestd;constintmaxn=50009;intn,m,k,q,tot,cnt,vis[32767];inta[4]={1,-1,0,0};intb[4]={0,0,-1,1};map<int,short>mp[maxn];queue<pair<int,int>>......
  • [39] (多校联训) A层冲刺NOIP2024模拟赛01
    你们不感觉最近机房网越来越慢了吗,现在下个10M的东西要用三分钟,而且期间访问不了网站整个机房分1000Mbps的带宽为啥只能分这么一点,huge拿我电脑挖矿了?本来以为多校就是多校的,结果是真的多校,一百一十多个人在一块考huge:参加的都是咱们北方这几个强校你说得对,但是广东......
  • 01-什么是逻辑?
      感觉 知觉  感性认识理性认识    感觉知觉表象形象思维 ==》概念在感性认识的基础上,人们通过抽象与概括,舍弃个别事物表面的、次要的属性,而把握住一类事物特有的、共同的、本质的属性,于是就形成了反映事物的概念。直观性与个别性是感觉、知觉与表......