首页 > 其他分享 >10.9

10.9

时间:2024-10-09 19:23:15浏览次数:7  
标签:hvy 10.9 sum lit cdot 连续 区间

不会数学真是抱歉了!
不会 dp 真是抱歉了!

说好的 \(NOIP\) 模拟赛呢,开幕给我端上来这么一坨。

明天有体育课。

A.树上独立集

贪心,设 \(f_i\) 代表 \(i\) 子树内有多少个未匹配点,若 \(\sum\limits_{v\in son_u}f_v>0\) 则 \(f_i=\sum\limits_{v\in son_u}f_v-1\) ,否则 \(f_i=1\) ,若当前添加了 \(n\) 个点,那么答案为 \(f_1+\frac{n-f_1}{2}\) 。

动态加点怎么办呢怎么办呢?

离线下来,先把最后的树建出来进行一个树剖,然后类似动态 $dp $ 的思想,线段树维护重链,同时用数组记录轻儿子贡献。
设 \(hvy_i\) 代表 \(i\) 向下的重链上的未匹配点数,\(lit_i\) 代表 \(i\) 子树内非重链上点的未匹配点数,那么合并线段树左右区间时,由于线段树维护 \(dfn\) 序,所以左区间是右区间的父亲,设 \(a\) 为左区间,\(b\) 为右区间,则:

node operator+(node a,node b)
{
	if (a.hvy >= b.lit) a.hvy -= b.lit;
	else a.lit += b.lit-a.hvy,a.hvy = 0;
	a.hvy += b.hvy;
	return a;
}

动态加点,我们就跳重链同时更新链上节点信息即可,复杂度 \(O(n\log^2n)\) 。
由于重链上的点可以两两匹配,所以 \(f_i = hvy_i\bmod2+lit_i\) 。

B.排列计数

赛时读错题了 \(30\rightarrow 5\)。
无所谓,题解百分百!

记 \(k=r-l+1\)。
考虑置换环,排列 \(p\) 做一次置换相当于每个位置变为置换环上的下一个位置。如果排列 \(p\) 在区间 \([l,r]\) 上是值域连续段,那么该区间做一次置换后也是一个区间。因为 \(p\) 做任意次置换后 \([l,r]\) 都是值域连续段,所以如果从 \([l,r]\) 开始不断在置换环上向后跳,则每次跳到的都是一个区间,且最终会回到 \([l,r]\)。我们考察从 \([l,r]\) 向后跳到的区间。
如果这些区间互不相交,则在置换环上,这些区间构成一个圆排列。每一段区间都是值域连续段,在确定该区间跳到的区间后,它的值域也确定了,并且内部可以任意排列。因此这部分对答案的贡献是:

\[\sum_{i=1}^{\left\lfloor \frac{n}{k}\right\rfloor} (k!)^i\cdot (i-1)!\cdot (n - ik)! \cdot F_{i,l-1,n-r,k} \]

其中

\[F_{i,x,y,k}=\sum_{j = 0}^{i-1} \binom{x-j(k-1)}{j}\binom{y-(i-j-1)(k-1)}{i-j-1} \]

对于相交的情况,有结论:如果将所有相交的区间合并成一个连续段,则每一个连续段有且仅有两个区间,且所有连续段长度相同。在通过置换环向后跳的过程中,会首先依次经过每个连续段中的一个区间,再按相同的顺序经过每个连续段中的另一个区间,最后回到初始区间。
若一个连续段是区间 \([l_1,r_1]\) 与区间 \([l_2,r_2]\) 构成的,设 \(l_1<l_2\),若区间 \([l_1,r_1]\) 中的最小值小于区间 \([l_2,r_2]\) 中的最小值,则称该连续段是上升的,否则是下降的。
假设一共形成了 \(m\) 个连续段,这些连续段的指向关系会构成一个圆排列,并且其中一定有奇数个下降的连续段。类似于不交的情况,不妨设 \([l,r]\) 所在的连续段是上升的,该部分的贡献是:

\[\sum_{d=1}^{k-1} \sum_{i=1}^{\left\lfloor \frac{n}{k}\right\rfloor} 2^{i-1}\cdot \left((k-d)!^2\cdot d!\right)^i\cdot (i-1)! \cdot \left(n-i(2k-d)\right)!\cdot F_{i,l-1,n-r-k+d,2k-d} \]

\(F\) 可以用 NTT 计算。时间复杂度 \(\mathcal{O}\left(n\log n\right)\)。

C.猜数游戏

题面还没看过。

标签:hvy,10.9,sum,lit,cdot,连续,区间
From: https://www.cnblogs.com/ZepX-D/p/18454954

相关文章

  • 2024.10.9 总结
    决定以后分开写,显的博客多。A:首先考虑对给定树计算权值,假设我们已经知道了一个权值最小的划分,那么可以通过调整得到新的划分使得权值不变,目的是简化虚树的形态。考虑该划分中任意一个集合形成的虚树,有两种情况:如果根节点\(r\)存在于任何一个最大独立集中,即\(f_{r,1}>f_{r,0}......
  • 10.9(NOIP 模拟赛 #10)
    2025--炼石计划--10月06日--NOIP模拟赛#10【订正】-比赛-梦熊联盟(mna.wang)复盘T1计数题,感觉不难。用样例模拟了一下,找到一个较优的去重方式。然后过了样例。此时8:10。T2好像又是矩阵加速。想正解。想不出来,只能做到\(\mathcalO(n^6\logk)\)的复杂度。......
  • Spire.PDF for .NET 10.9.0
    Spire.PDFfor.NETisaprofessionalPDFAPIappliedtocreating,writing,editing,handlingandreadingPDFfileswithoutanyexternaldependencieswithin.NET(C#,VB.NET,ASP.NET,.NETCore,.NET5.0,.NET6.0,.NET7.0,MonoAndroidandXamarin.iOS)......
  • 第十章 【后端】环境准备(10.9)——Navicat
    10.9NavicatNavicatPremium官网下载下载地址:https://www.navicat.com.cn/download/navicat-premium-lite安装一路“下一步”即可。连接`MySql’......
  • Spire.PDF for Java Version:10.9.0
    Spire.PDFforJavaisaPDFAPIthatenablesJavaapplicationstoread,writeandsavePDFdocumentswithoutusingAdobeAcrobat.UsingthisJavaPDFcomponent,developersandprogrammerscanimplementrichcapabilitiestocreatePDFfilesfromscratchor......
  • Microsoft Remote Desktop for Mac(微软远程连接软件)v10.9.7直装版
    MicrosoftRemoteDesktop是微软开发的远程连接工具,支持Windows、macOS、iOS和Android,允许用户通过互联网远程访问其他计算机的桌面和应用程序,实现跨设备文件共享。同时,它提供网络层身份验证、数据加密和多重身份验证等安全功能,确保用户隐私和数据安全。MicrosoftRemoteDesk......
  • 万兴全能格式转换器v15.5.10.97绿色版
    软件介绍万兴全能格式转换器,又叫万兴优转,国产全能音视频格式转换解决方案。具有音视频格式转换、合并视频、压缩视频、录制视频、下载视频、DVD刻录等功能。以超快的转换速度及强大的功能在国外名声大噪,转换速度是市面同类产品的30倍,操作简便,支持158种视频格式无损转换,批量转......
  • day34 基于ServiceEntry,Sidecar,Envoy Filter实战场--深入剖析Istio的安全策略(10.8-10.
    10.8-1-基于ServiceEntry,Sidecar,EnvoyFilter实战场一、ServiceEntry实战场景1.1部署Istio提供的sleep示例istioctlkube-inject-fsamples/sleep/sleep.yaml|kubectlapply-f-1.2部署busybox#busybox-dp.yamlapiVersion:v1kind:Servicemetadata:name:busybo......
  • 【一周聚焦】联邦学习 10.9-10.16
    近期的联邦学习做了如下内容:大模型目前大模型是绝对的研究风口,而FL中为了降低传输开销的网络压缩技术也是可以服务于LLM的高效传输的。港科大+微众银行,10月16,FATE-LLM:AIndustrialGradeFederatedLearningFrameworkforLargeLanguageModels杨强团队一直在推FATE这个联......
  • 大二快乐日记10.9
    在MySQL中,可使用SHOWDATABASES语句来查看或显示当前用户权限范围以内的数据库。查看数据库的语法格式为:纯文本复制SHOWDATABASES[LIKE'数据库名'];实例1:查看所有数据库列出当前用户可查看的所有数据库:mysql>SHOWDATABASES;+--------------------+|Database......