2024.7.2

news/2024/10/24 9:01:44

2024.7.2

T1

题面

总共 \(n\) 个数与 \(m\) 个限制,第 \(i\) 个限制给定 \(k_i\) 个数,表示这些数两两不能分为一组,问最少可以分为几组。

\(1\le k\le n\le 10^5,1\le m\le 4\)

题解

把每个人的参赛情况用一个 \([0,15]\) 中的整数 \(s\) 表示,再按照 \(\operatorname{popcount}(s)\) 从大到小贪心凑即可。(求证)复杂度 \(\mathcal O(2^{4m}+nm)\)

方法

  • 贪心

T2

题面

给定一棵 \(n\) 个点的树和整数 \(k\),边有边权。
定义一个树上连通块的权值为其中边权之和,你需要求满足「至多包含一个度数 \(>k\) 的点」的树上连通块的权值最大值。
注意,条件中的度数指连通块中的度数,而非原树中的度数。

\(1\le n\le 2\times 10^5,0\le k<n\)

题解

\(dp_{x,0/1}\) 表示以 \(x\) 为根的子树中 没有/有 度数 \(>k\) 的点,注意向上转移应该算上与父亲的边,与字数内答案不完全一样,转移即可

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

方法

  • 树形 DP

T3

题面

称一个正整数对 (a,b)合法,当且仅当存在正整数 \(k\)\(k\) 组正整数对 \((h_i,w_i)\),使得

  • \(\sum_{i=1}^kh_iw_i=a\)

  • \(\sum_{i=1}^kh_i+w_i=b\)

给定 \(n,m\),求满足 \(a\in[1,n],b\in[1,m]\) 的正整数对中有多少是合法的。

\(1\le n,m\le 2\times 10^5\)

题解

这里是 \(c,s\le 6\times 10^3\)\(49\) 分做法

\(dp_{a,b}\) 表示 \((a,b)\) 是否合法,则

\[dp_{a,b}=\mathop{\Large\land}\limits_{h\ge1,w\ge1,hw\le a,h+w\le b}dp_{a-hw,b-w-h} \]

可以 bitset 优化,这是 \(18\) 分的。

很难不借助打表注意到,\(\exist w\in \N^*,\forall a\in[1,n],b\in [w,2a],(a,b)合法\)

利用Excel 可得, \(w\approx 2.6\sqrt{n}\),打表可得当 \(n\le 6\times 10^3,w\) 可取 \(200\)

于是只需要存储小于 \(w\) 的数据时间变为 \(\mathcal O(\frac{w^2n}{32})=\mathcal O(n^2)\)

可以过 \(49\) 分数据

正解:

方法

  • 打表

    这种连数竞选手都不一定能证明的结论,不用计算机辅助证明还能用什么。

T4

题面

对于一个元素互不相同的序列 \(a_1,a_2,\cdots,a_n\),定义一次合法的操作为:

  • 选择一个 使得 \(i\in [2,n-1]\) 使得 \(a_{i-1}<a_i<a_{i+1}\) ,将 \(a_{i+1}\) 移动到 \(a_{i-1}\) 之前。

我们定义一个序列是合法的,当且仅当它能够由一个严格单调上升的序列通过有限多次操作得到。

给定排列 \(p_{1\sim n}\)。有 \(q\) 次修改,每次修改形如交换 \(p_x\)\(p_y\) 的值。你需要在每次修改后,回答最小的正整数 \(k\),满足 \(p_{k\sim n}\) 为一个合法的序列。

\(2\le n\le 10^5,1\le q\le 10^5,1\le x,y\le n,x\not=y,p是一个n阶排列\)

题解

考虑从一个严格递增序列开始操作的过程,发现操作过程中每个数右侧小于它的数的个数始终为偶数,并且显然任意满足这个条件的序列都合法,所以这个条件是充要的。

便有了 \(\mathcal O(n^2)\) 做法

考虑用分块维护这个信息。设 \(i\) 右侧有 \(r_i\)\(<p_i\) 的数。假设交换 ,那么 \(x,y\) 所在的块可以暴力重构;对于中间的块,影响是一个值域区间内的 \(r\pm1\)

于是可以想到每个块内部先排序,然后维护 \(r\) 的差分。这样的话发现需要对中间每个块做 lower_bound ,而块内是可以线性重构的。直接做时间复杂度\(\mathcal O(n\sqrt{n\log n})\)为 ,已经足以通过。

方法

  • 模拟操作过程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/75350.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

[快速阅读八] Matlab中bwlookup的实现及其在计算二值图像的欧拉数、面积及其他morph变形中的应用。

以前看过matlab的bwlookup函数,但是总感觉有点神秘,一直没有去仔细分析,最近在分析计算二值图像的欧拉数时,发现自己写的代码和matlab的总是对不少,于是又去翻了下matlab的源代码,看到了matlab里实现欧拉数的代码非常简单,其核心就是借用了bwlookup函数。以前看过matlab…

Ftrans供应链文件分发平台:如何确保数据安全与合规性?

传统制造企业在日常协作中,会涉及到像采购订单和合同、技术规格和图纸、质量标准和检验报告、库存和补货信息等文件分发需求。到在选择供应链文件分发平台时,需要考量以下因素,从而选择出合适的传输方式: 1.安全性:确保文件在传输过程中的安全性是至关重要的。需要考虑传输…

【Shiro】12.自定义过滤器

通过查看若依源码(ruoyi-framework)下的过滤器文件(src.main.java.com.ruoyi.framework.config.ShiroConfig)可以发现设置了过滤器。过滤器(Filter)是Java Servlet技术中的一个重要部分,主要用于在 Servlet 处理请求之前或响应之后对数据进行某些处理。可以这么理解。如果类…

【深度解读】涉密网向非涉密网跨网传输数据,需要注意什么?

网间数据传输的背景 为什么会存在涉密网向非涉密网跨网传输数据呢?哪些行业会面临这样的传输场景呢? 首先,会存在这样的场景,是因为有核心机密数据需要保护,通常会在政府机构、金融机构、军工企业、科研单位和大型企业中会做这样的网络隔离。这种做法主要是为了保护敏感信…

【泛微E9】在查询列表中增加红色字体的提示

效果如下:实现方法:<link rel="stylesheet" href="/js/jquery-ui-1.13.2/jquery-ui.css"> <link rel="stylesheet" href="/js/jquery-ui-1.13.2/jquery-ui.min.css"> <script src="/js/jquery-ui-1.13.2/jquery…

无需等待Vue Release发布,就能在项目中体验最新版

两个月前尤大在Vue 仓库中引入了 pkg.pr.new,有了这个后Vue仓库中的每个commit或者PR都会自动触发一个新的发布,我们就可以在项目中体验最新版本的Vue啦。前言 两个月前尤大在Vue 仓库中引入了 pkg.pr.new,有了这个后Vue仓库中的每个commit或者PR都会自动触发一个新的发布,…

博客初始设置

声明 本文属于本人《从零开始美化博客》系列,系列详细信息请访问 我的博客。你可以在我的 github 仓库 中查看完整代码,或是在文末查看本文相关代码,相关代码遵循 MIT 协议,你可以在 github 仓库下的 LICENSE 文件 查看详细协议。你可以在 这里 预览最新进展中的博客页面。…

10月24日 交易计划

1. 苯乙烯8430附近的多单