首页 > 其他分享 >8.28 A 星人是一种 OI 很强的生物

8.28 A 星人是一种 OI 很强的生物

时间:2023-08-28 22:11:43浏览次数:49  
标签:dots 星人 OI 插板 mid 操作 2n 8.28 我们

Mahjong

找到可以通过以下两种操作,使得长度为 \(N\)、元素之和为 \(M\) 的数列 \(A\) 全为 \(0\) 的 \(A\) 的个数,再取模 \(998244353\)。

  1. 在 \(A\) 中选一个元素,将其减去 \(K\)。
  2. 在 \(A\) 中选取长度为 \(K\) 的子串,子串中每个元素减去 \(1\)。

tag:组合数学

搞笑题,我忘了插板法,我更搞笑。

首先判无解。由于两种操作均可看作从总和中减去 \(k\),所以若 \(M\bmod K\ne 0\) 就无解。

发现直接从 \(A\) 中删除比较麻烦,所以我们选择从 \(B=\{0,0,\dots,0\}\) 开始加,加出来的序列就是我们的 \(A\)。

考虑如何不重不漏统计出 \(A\)。发现唯一重复的情况是执行了 \(\ge k\) 次 \(i\) 相同的二操作,这能被 \(k\) 次一操作替代。于是实际上我们要构造一组操作序列 \(b\),\([b_1,b_2,\dots,b_{n-k+1}]\) 中 \(b_i\) 代表下标为 \(i\) 的二操作执行了多少次,\([b_{n-k},b_{n-k+1},\dots,b_{2n-k+1}]\) 中 \(b_{n+i}\) 表示下标为 \(i\) 的一操作执行了多少次。那么我们有如下限制:

  1. \(\sum_{1\le i\le 2n-k+1}b_i = \frac{m}{k}\)。
  2. 对于所有 \(i\in [1, n-k+1]\),\(b_i<k\)。

这相当于前 \(n-k+1\) 个板有上界限制的插板法。发现上界限制难做,但下界限制好做,无非是先从所有元素里划出一部分做下界然后转无限制插板法。所以我们容斥,钦定 \(i\) 个 \(b_i\) 不合法,枚举 \(n-k+1\) 中哪 \(i\) 个不合法,然后有:

\[\sum_{i=0}^{n-k+1}(-1)^i\tbinom{n-k+1}{i}\tbinom{\frac{m}{k}-ik+2n-k}{2n-k} \]

由于 \(\frac{m}{k}\) 很大,但是 \(2n-k\) 很小,于是我们暴力处理组合数即可。

Make Biconnected

给你一棵由无向边组成的二叉树,树上每个点有权值 \(w_i\)。你可以把两个点之间连无向边,如果将 \(u\) 与 \(v\) 连边,代价是 \(w_u+w_v\)。请给出一种连边方式,使得连边后,图中去掉任何一个点仍然联通,即图是一个点双连通图。在此基础上,你要使代价最小。

tag:构造

发现对于度数为 \(1\) 的每个点,必定有条路径以它为一个端点。否则它会产生割点。

因此,我们将所有度数为 \(1\) 的点配对,然后两两匹配即可。每个点匹配与他距离最长的那个点。

需要注意的是这样可能会多出一个点,我们把这个点向上跳,直到跳到第一个三度点。三度点到这个叶子节点的路径必须被覆盖,于是我们在树的剩余部分找到最小值连起来即可。

All Pair Shortest Paths

给你一个 \(2\times N\) 的表格,定义 \(f(x,y)\) 为 \(x\) 走到 \(y\) 经过格子权值和的最小值,求所有 \(f(x,y)\) 之和。

tag:分治

之后的讨论中,不妨设 \(x\) 的横坐标小于 \(y\)。

由于表格只有两行,因此我们的路径必定横坐标递增。因为如果走了回头路,就要再把之前走过的路再走一遍,而且没有收益。

这样的话,我们就把对 \(f(l,r)\) 的讨论限制在了 \([l,r]\) 这个区间里。于是可以考虑分治。对于分治中心 \(mid\),考虑左端点在 \([L,mid]\) 之间,右端点在 \([mid+1,R]\) 之间产生的贡献。对于左边,我们倒着做,考虑 \((mid,0)\) 和 \((mid,1)\) 到左边每个点的最短路径。对于右边,我们正着做,同样是从中央两个点开始考虑。

最后一个问题,我们如何合并左右两边的答案。答案有两种情况: \(A_{l,1}+B_{r,1}\) 和 \(A_{l,0}+B_{r,0}\),表示走到 \(mid\) 上方的点汇合还是走到下方的点汇合。我们把右边的点按照 \(B_{i,0}-B_{i,1}\) 从小到大排序,显然如果 \(A_{l,0}-A_{l,1}+B_{r,0}-b_{r,1}>0\) 则走 \(A_{l,1}+B_{r,1}\) 更优。于是做一个二分后前缀和统计贡献即可。时间复杂度 \(O(n\log^2 n)\)。

标签:dots,星人,OI,插板,mid,操作,2n,8.28,我们
From: https://www.cnblogs.com/closureshop/p/17663504.html

相关文章

  • Android开发|备战金九银十,LeetCode高频面试题合集
    金九银十来了,你准备好备战了么!而最高效的准备方式,不外乎刷题、刷题、刷题。刷题就不得不提LeetCode了~俗话说的好:LeetCode刷不好,一面都过不了。所以,今天就将一些LeetCode大厂高频面试题整理成合集分享给大家,希望能助大家一臂之力~有需要的小伙伴,可以点击下方课程链接详细了解!!!h......
  • 闲话8.28
    好好好,今晚九点半才想起来写闲话。今天上午搬宿舍了。今天下午2:20才让我们从宿舍出门,估计想让我们多睡会了属于是......
  • [Android 分享] [教程] 微信抓不到包?根本不存在!----一招搞定微信内置浏览器抓包
    [教程]微信抓不到包?根本不存在!----一招搞定微信内置浏览器抓包-『移动安全区』-吾爱破解-LCG-LSG|安卓破解|病毒分析|www.52pojie.cn 所需工具1.一部手机2.一台电脑3.一条数据线情景模拟某个网页只能在微信中打开,但我想要抓包调试怎么办?1.HttpCannary(小......
  • 2023.8.28
    A长为\(n=2^k-1\)的纸条,编号为\([0,n-1)\),将纸条对折\(k\)次(每次将右边翻转至左边下面),记形成的序列为\(\{a_n\}\).\(m\)次询问,给定\(l,r\)求解:\[F(l,r)=a_l+a_{l+1}\oplusa_{l+2}+a_{l+3}\oplusa_{l+4}+\dotsa_r\]若\(l\)为偶数,那么先计算\(+\),否则先计算\(\o......
  • Android平台签名证书(.keystore)生成
    安装JRE环境地址:https://www.oracle.com/java/technologies/downloads/#java8C:\ProgramFiles\Java\jdk-1.8这是我都默认安装地址安装成功后配置环境变量%JAVA_HOME%\bin生成签名证书使用keytool-genkey命令生成证书:keytool-genkey-aliastestalias-keyalgRSA-keysize2048......
  • 深入探讨Android启动优化策略
    在当今激烈竞争的移动应用市场,应用的启动速度直接影响着用户的第一印象和满意度。作为主流的移动操作系统之一,Android的启动优化是开发者必须关注的关键领域。本文将详细介绍一些强大有效的Android启动优化策略,帮助你优化应用的启动过程,为用户创造更出色的体验。冷启动与热启动在着......
  • 云原生周刊:CNCF 宣布 KEDA 毕业 | 2023.8.28
    开源项目推荐KDashKDash是一个用Rust构建的简单快速的Kubernetes仪表板。它提供了一个终端界面,用于监视和管理Kubernetes集群。该仪表板具有多种功能,包括节点指标、资源监视、自定义资源定义、容器日志流式传输、上下文切换等。它还支持不同的主题和键盘快捷键操作。fub......
  • Android Audio
    1.最常接触到的audioserviceframeworks\base\services\core\java\com\android\server\audio\AudioService.java初始化音量的代码//Initializevolume//Priority1-AndroidProperty//Priority2-AudioPolicyService//Priority3-Defau......
  • 学习笔记414—Sigmoid函数求导
    Sigmoid函数求导基础知识: Sigmoid函数: Sigmoid图形: 生成Sigmoid图形代码:importtorchfromd2limporttorchasd2l%matplotlibinlinex=torch.arange(-8.0,8.0,0.1,requires_grad=True)sigmoid=torch.nn.Sigmoid()y=sigmoid(x)d2l.plot(x.detach(),y.detach(......
  • cocos2dx 如何编译android 打包
    先要配置NDK,然后启动CMD命令进入到自己的游戏根目录,我的是starGame,所以如上所示:......