首页 > 其他分享 >33dai NOIP2023模拟赛35 赛后总结

33dai NOIP2023模拟赛35 赛后总结

时间:2023-10-07 11:22:09浏览次数:43  
标签:33dai 联通 暴力 40 交替 35 NOIP2023 dp 关键点

做题历程

8:00 ~ 8:40

写A。

8:40 ~ 9:40

看B,C想B,写B。

9:40 ~ 10:40

手玩了一下C,推出了那个规律。

10:40 ~ 11:20

写C。

11:20 ~ 12:00

看了看D,尝试写dp暴力,没空,最后随便写了写。

总结

  • 写代码要注意细节,不然容易挂。

题解

A

倒序做一遍双指针,没什么好说的。

不过有很多人用奇怪的数据结构,不知道怎么做的,感觉很奇怪。

B

用期望+区间dp或直接区间dp即可。

需要一点排列组合。

C

需要知道一个规律,即最终合法情况一定是每一行BRBR交替,或是每一列BRBR交替,

所以直接判断一下,是否能行交替或列交替,直接算即可。

注意可能有重复情况,需要特判。

D

根号分治+树形dp。

首先考虑暴力dp,设 \(dp_{i,1/0}\) 表示 \(i\) 的子树内所有关键点都被满足,且 \(i\) 在/不在 联通块内的最小代价。

有转移方程

\[dp_{i,0}=\sum_{v\in{Son_u}}min(dp_{v,0}, dp_{v,1}) \]

\[dp_{i,1}=\sum_{v\in{Son_u}}min(dp_{v,0}, dp_{v,1}-k) \]

很难看出,对于一个固定的 \(k\),在最优情况下,选择的联通块的数量大约是 \(\frac{n}{k}\) 这个级别的。

感性理解,对于每个关键点,与它距离小于 \(k\) 的关键点,都会在同一联通块中。

所以最终答案中联通块距离一定大于 \(k\)。

所以对于 \(k \leq \sqrt{n}\) 直接暴力dp,因为卡常,所以需要加一个dfs序优化。

对于 \(k > \sqrt{n}\) 需要一个树形背包。

设 \(dp_{i,j,1/0}\) 表示 \(i\) 的子树内所有关键点都被满足,使用了 \(j\) 个联通块,且 \(i\) 在/不在 联通块内的最小代价。

转移同上。

标签:33dai,联通,暴力,40,交替,35,NOIP2023,dp,关键点
From: https://www.cnblogs.com/PeyNiKge/p/17745853.html

相关文章

  • RK3588开发笔记(一):基于方案商提供的宿主机交叉编译Qt5.12.10
    前言  rk3588开发车机,方案上提供的宿主机只是编译rksdk的版本,并未编译好Qt,那么需要自行交叉编译Qt系统。选择的Qt的版本为5.12.10。 宿主机准备  下载并打开宿主机,只有sdk,并没有交叉编译的Qt。   Qt准备  下载Qt5.12.10的开源软件(方案商提供)。  ......
  • 力扣-2535-数组元素和与数字和的绝对差
    给你一个正整数数组nums。元素和是nums中的所有元素相加求和。数字和是nums中每一个元素的每一数位(重复数位需多次求和)相加求和。返回元素和与数字和的绝对差。注意:两个整数x和y的绝对差定义为|x-y|。 示例1:输入:nums=[1,15,6,3]输出:9解释:nums的元素......
  • nvidia-smi指令报错:Failed to initialize NVML: Driver/library version mismatch NVM
    nvidia-smi指令报错:FailedtoinitializeNVML:Driver/libraryversionmismatchNVMLlibraryversion:535.113我是刚开始没有nvidia-smi命令,输入后,提示我安装。aptinstallnvidia-340#version340.108-0ubuntu5.20.04.2,oraptinstallnvidia-utils-390......
  • Android程序员35岁的职业出路:寻找新的舞台
    前言转眼间已经到了奔四的年纪,岁月匆匆,时光荏苒,转眼间已经在Android行业干了8年,当前项目组也陆陆续续进入了不少00后,80后已经不见踪影,90后正在逐渐淡出,而我,也要开始迎接程序员35岁这个坎,心里还是想要继续做技术这条路,但是也给自己思索了一些转行之路,在此跟大家交流交流。为什么35岁......
  • 「HRBUST1355」Leyni,罗莉和XianGe
    原题:http://222.180.160.110:1024/problem/30291考虑建图找最短路很容易想到以每个点作为结点,对同一行,同一列的点连边。但是这样建图边数最大能达到\(1e9\)很经典的操作就是对每一行,每一列,建一个虚点。每个点都连向其对应的行、列的虚点。这样的话,就比同一行(列)的点两两连边更......
  • 202310032035_《近期撸码心得》
    如图,循环依赖一直搞糊涂我,本来,mybatis就是因sql操作灵活性而采用,无可厚非,对于新手的我,一是项目需要,而是为求职职场操练,但“请君入问”感是还要配“mybatis-generator”plugin,为了自动嘛。但是,我觉得这插件与Lombok某些生成代码严重重复......直到修修补补,到上图“推荐重新设......
  • NOIP2023 国庆集训 A 组 Day7
    T1思路:因为只有三个串故枚举其中一个为调换的串,再枚举k验证即可。T2思路:正着不好做,考虑反着做。这样就不会覆盖之前的。赛时没想到这个常见套路,正难则反。T3事实上只有一种情况,故只需倒着枚举遇到a统计答案。使用一个变量sum来记录遇到下一个a的次数如果枚举到b,sum+=1。......
  • 【Citrix篇】1-Citrix ADC/Gateway 远程代码执行漏洞CVE-2023-3519和升级方法
    一、前言近期我们收到Citrix发布关于NetScalerADC、NetScalerGateway的风险通告,漏洞编号为CVE-2023-3519,漏洞等级:严重,漏洞评分:9.8漏洞影响:Hack可根据该漏洞,在配置了网关(VPN虚拟服务器、ICA代理、CVPN、RDP代理)或AAA虚拟服务器的Netscaler上可绕开任何认证直接进入到shell......
  • [ARC035B] アットコーダー王国のコンテスト事情 题解
    前置芝士排列组合分析明显的贪心,第一问与此题思路相似,优先选择做时间少的,可以尽可能让后面的罚时尽量的小。难点在第二问,第二问问的是有几种可能性,有个显然的结论:相同做题时间的题目,位置调换答案仍然相同。那么可以用桶+排列组合来解决:用桶储存这个做题时间的出现次数\(b......
  • QOJ # 2835. Number Theory
    题面传送门貌似是一个点名被卡的做法,怎么回事呢/cy首先我看到这个东西感觉一脸进制转换,但是这玩意不是非常严格的进制转换,他的某一位的基数是上一位基数乘\(10\)还要\(+1\),没关系,对于每个数从高到低转化,总能转化出一个合法的进制数。然后考虑调整这个类似进制的数,首先一个比......