25年11月计数题做题记录

news/2025/11/12 22:23:28/文章来源:https://www.cnblogs.com/Lyrella/p/19215680

AGC073C

因为实数不好处理所以我们考虑将实数映射到整数上去做,相当于我们把值域在 \([-(n-1),1]\) 之间的实数映射到 \([-(n-1)m,m]\) 之间的整数上,其中 \(m\rightarrow\infty\),现在我们需要考虑的就是值域在 \([-(n-1)m,m]\) 的整数的答案。

我们观察性质,可以发现对于 \(x_i\) 相同的连通块他们的 \(x_i\) 一定仅由这个连通块构成。考虑反证法,证明类似最大子段和,如果不同说明原来的定义矛盾了。所以我们现在考虑将原图划分成 \(k\) 个连通块,一个连通块的 \(x\) 和大小分别是 \(y_i\)\(c_i\)。考虑其对答案贡献的方案数为 \((y_i+1)^{c_i-1}\),原因是对于连通块中除深度最小的点外,其他点都能在 \([0,y_i]\) 内任意选择,最后用一个点一定能调回 \(y_i\),因为 \(c_i-1\) 个点的和的值域为 \([0,(c_i-1)m]\),而一个点的值域为 \([-(n-1)m,m]\),考虑到 \(c_i\le n\) 于是一定有解。然后我们乘上连通块的贡献 \(y_i^{c_i}\) 即可。因为题目中要求期望,于是我们转计数再除以方案数,所以一个连通块的贡献我们去枚举 \(y_i\),然后在树上进行划分,我们写出一个连通块最终的答案:

\[\sum_{y_i=0}^m(y_i+1)^{c_i-1}y_i^{c_i} \]

\(m\rightarrow\infty\) 时,答案为:

\[\int_0^1x^{c_i-1}x^{c_i}\text dx={1\over2c_i} \]

于是我们设 \(f_{i,j}\) 表示以 \(i\) 为根的子树还剩 \(j\) 个点需要划分连通块的答案。树上背包即可,时间复杂度 \(\mathcal O(n^2)\)

AGC070C

发现这道题的限制有点多,要求前缀 A 数量大于等于 B 数量,不能有连续的 A 或 B。我们先处理第一个限制,有一个妙手就是我们可以类似卡特兰数的方式去思考,直白一点就是反射容斥。我们看成从 \((0,0)\) 只能向上、向右或原地不动走到 \((a,b)\) 并且不能越过 \(y=x\) 这条直线,且不能连续向右/上的方案数,设为 \(f(a,b,c)\)

首先反射容斥就相当于要减去走到 \((b-1,a+1)\) 的方案。但是注意到可能存在原来合法的情况在翻折后变得不合法,注意到可能变得不合法的位置只有经过 \(y=x+1\) 的时候可能把向上向右变成向上向上,所以我们考虑翻折前不合法的情况对应翻折后的情况,也就是构造双射。因为过 \(y=x+1\) 的位置很特殊所以我们据此构造双射。

  • 对于原来两次向上我们可以用一次向上代替,方案数为 \(f(b-1,a,c)\)
  • 对于原来先向上再停留再向上我们可以用一次向上代替,方案数为 \(f(b-1,a,c-1)\)
  • 对于原来先向上在停留再向右我们可以用一次向上向右代替,方案数为 \(f(b-1,a+1,c-1)\)

现在考虑一个 \(f(a,b,c)\) 怎么求?我们可以枚举 \(C\)\(A\) 划分成了 \(i\) 段,这个方案数对 \(A\) 是插板法 \(a-1\choose i-1\),对 \(C\) 我们需要先把两边的空位各补一个 \(C\) 然后插板法 \(c+1\choose i\),最后放 \(B\) 首先对于连续的 \(a-i\)\(A\) 需要干掉,剩下的 \(b-a+i\)\(B\) 我们可以放在 \(A\) 的连续段或者 \(C\) 旁边,但是一个空只能放一个,于是就有 \(c+i+1\choose b-a+i\)。然后就做完了,时间复杂度 \(\mathcal O(n)\)

AGC069D

参考题解:this;神仙转化,我的一辈子。

注意到 \(a_i\) 的意义是跨过 \(i\) 的边数,我们考虑差分,设 \(l_i\) 表示从 \(i\) 连到左边的边数,\(r_i\) 类似。显然有 \(a_i=\sum_{j\le i}r_j-l_j\)

有了初步的转化后接下来就是经典的判定合法性,然后找充要去维护。首先去找必要条件:

  • 除了 \(l_1=r_n=0\),其余 \(l_i,r_i\) 均大于 0。
  • \(\sum_il_i=\sum_ir_i=n-1\)
  • \(\sum_{j\le i}l_j<i\),这个是显然的上界,考虑左半部分是森林。
  • 考虑 \(a_i\) 的意义是说让左部分和右部分连通需要的边数,考虑左边的连通块数为 \(i-\sum_{j\le i}l_j\),那么 \(a_i\) 至少需要这么多条边跨过 \(i\)

上述条件对于 \(r_i\) 也有类似对称的限制。

证明充分考虑构造证明,我们可以把 \(r_i,l_i\) 分别看成左右部点跑网络流。对于左部点我们从限制最严的开始去匹配右部点限制最松的,具体的,我们从后往前用 \(r_i\) 匹配 \(l_i\),并且优先使用更大的 \(l_i\)。然后我们就可以考虑 dp,设 \(f_{i,j,k}\) 表示考虑到 \(i\)\(a_i=j,\sum_{j\le i}l_j=k\) 的方案数,为了避免重复计算我们钦定 \(\sum l_j\) 是固定前两维后最小的。转移考虑枚举 \(\sum\),判断上面的充要条件是否满足,如果满足了就直接转移即可。时间复杂度 \(\mathcal O(n^4)\),发现你的转移实际上是矩形加,于是维护前缀和然后差分即可,但是注意有散点可能会出问题,单点修改一下即可做到 \(\mathcal O(n^3)\)

AGC068A

属于能力范围内的题,没做出来且红温。

考虑枚举答案 \(d\),然后求方案数。恰好为 \(d\) 的方案数不好求于是差分一下去求 \(\le d\) 的方案数。现在考虑钦定选 0,那么我们如果将每次选择方案的点顺时针旋转就会得到 \(L\) 种不同的选法,但是最后这只能贡献 \(n\) 次,于是最后答案需要乘上 \(L\over n\)

钦定选了 0 之后我们的合法区间就是 \([1,d]\cup[L-d,L-1]\)。注意到如果两个点全部在一个区间内就没有影响,但是如果一个在 \([1,d]\) 另一个在 \([L-d,L-1]\) 那它们可能会超过 \(d\) 然后爆炸。我们设 \(len=L-2d-2\),如果我们选择了 \([L-d,L-1]\) 里面的一个数 \(x\) 那么 \([x+d+1-L,x+d+1-L+len]\) 的数就不能选,我们设 \(x'=x+d+1-L\),考虑如果选择了 \(x\) 那么对应在 \([1,d]\) 中的 \([x',x'+len]\) 就不能选了。可以发现 \(x\)\([L-d,L-1]\) 中的相对位置等于 \(x'\)\([1,d]\) 中的相对位置,所以我们可以把前者映射到后者,考虑在 \([1,d]\) 上选点并染色。设选择染黑色代表选择的是 \([L-d,L-1]\) 的点,染白色代表选择了 \([1,d]\) 的点。那么如果我们选择 \(x\) 并染黑,那么 \([x,x+len]\) 的点就不能再选成白点了。于是我们枚举有 \(i\) 个黑点后面是白点,于是选择点的方法有 \(d-i\times len\choose n-1\) 种。现在再来考虑染色,注意到我们要将一些点划分成段,但是注意到首尾不完整于是我们手动补两个点,就相当于是把 \(n+1\) 个点分成 \(2i+2\) 段,方案数是 \(n\choose 2i+1\)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

固体废物资源化处理简答题与论述题

固体废物处理核心内容简答题与论述题(含解说) 一、简答题(侧重基础概念与关键参数) 1. 简答题1:固体废物分类及“三化”“3R”原则分别是什么?答案:分类:工业固体废物、城市固体废物、农业固体废物、危险废物、…

详细介绍:Python基础语法与数据类型详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

noip6 多校1

11.1211.12 t1 \(O(nm^2)\)是简单的。 发挥人类智慧发现每次最优只在前面较少的状态。 于是可过。 其实人类智慧有证明的。 考虑若最大值越大,则选的次数越小,反之亦然。 平均一下就过了。 codet1 #include <bits…

CCPC2025哈尔滨站-H. 匹配

时停问题,考虑势能函数。设单个集合的势能函数为 \(f(x)\),其中 \(x\) 为集合大小,这是合法的。总的势能 \(\Phi = \sum\limits_{s\in S} f(|s|)\).考虑列出方程解出 \(f\)。 满足鞅的时停定理的势能 \(\Phi\) 满足…

通过开发环境部署工具安装qt相关c++开发环境

通过开发环境部署工具安装qt相关c++开发环境

第23天(简单题中等题 二分查找)

打卡第二十三天 1道简单题+2道中等题题目: 两数之和思路一: 双指针,题目说数组下标从1开始,先初始指针还是从0开始,返回时左右指针都加1就行 代码: class Solution { public:vector<int> twoSum(vector<int&g…

Cinema4D 2025保姆级下载安装教程|含安装包获取+新手入门指南

目录一、Cinema4D 2025 核心功能亮点二、Cinema4D 2025 正规下载渠道1.Cinema4D 2025 下载(推荐)2.其他下载注意事项三、Cinema4D 2025 详细安装激活步骤(Windows 系统)步骤 1:解压安装包(提前关闭杀毒软件)步骤…

CF2101D

给定一个长度为 \(n\) 的排列 \(a\),问其有多少个子串 \(b\),使得 \(LIS(b) + LDS(b) = |b| + 1\) \(n \le 2 \times 10^5\)考虑一下题目给的条件在说啥,其实就是每个元素都在 \(LIS/LDS\) 中,只有一个相交的地方(…

【做题记录】HZOJ 多校-数论

B. [POI2011] SEJ-Strongbox 2025noip模拟赛73 BCode #include<bits/stdc++.h> #define int long long #define il inline #define pb push_back using namespace std; namespace asbt{ const int maxn=2.5e5+5;…

2014 吉林省赛题解 | CCUT应用OJ题解——F[X] + X = N

题目简介题意:对于任意十进制整数 \(X\),定义 \(F[X]^\dagger\) 表示其循环左移一位所得到的数。给定非负整数 \(N\),求所有满足等式 \(X+F[X]=N\) 的 \(X\) 的个数。 \(\dagger\) 循环左移:设 \(X=a_0a_1\cdots a…

洛谷 P4859 已经没有什么好害怕的了 题解(DP,二项式反演)

给两个长为 \(n\) 的数组 \(a, b,\) 求将 \(a_i, b_j\) 两两匹配使得 \(a_i > b_j\) 的数量比 \(a_i < b_j\) 的数量多 \(k\)。数字不重复, \(k \le n \le 2000\)。注意到,其实 \(a_i>b_j\) 和 \(a_i<b_j…

01321:棋盘问题

|DFS|回溯| 难点1:DFS,对于dfs(h,t)表示的“即将在第h行进行摆放,已摆放的棋子数为t个”,即如何在dfs函数内部进行递归:若该棋可以放在第h行的第i个位置(标注take[i]=true),则对改行以下行中所有可行的点进行递归…

飞鱼uu单人防空4

飞鱼uu单人防空4盖亚特买40个-->超级防空100-->超级磁能40-->磁能巨无霸20.剩下的随便买.一直造坦克碉堡

C 变量的作用域与生存周期

弄清楚变量的作用域和生存周期,能够让我们不至于犯低级错误; 局部变量 在初学C语言变量的时候,我们通常将变量写在main函数内; 在函数内部,或者{}块内部的变量称为局部变量;它有以下特点:系统不会帮忙初始化,需…

模式识别与机器学习课程笔记(11):深度学习 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Python字符串常用操作速查表(全面版v1.0 - 2025年11月12日修订)

Python字符串常用操作速查表(全面版v1.0 - 2025年11月12日修订) 📌 使用说明 时间复杂度:O(1)=常数级(快),O(n)=线性级(随数据量增长),O(k)=取决于传入可迭代对象长度 🔴 字符串(str)为不可变类型,所有&…

05.创建型 - 简单工厂模式(Simple Factory Pattern)

简单工厂模式(Simple Factory Pattern) 定义一个工厂类,根据传入的参数不同返回不同的实例,被创建的实例具有共同的父类或接口。 适用场景:(1)需要创建的对象较少。(2)客户端不关心对象的创建过程。例: 你需要一辆…

RabbitMQ延迟队列rabbitmq_delayed_message_exchange

访问:https://www.rabbitmq.com/community-plugins.html 下载rabbitmq_delayed_message_exchange插件,然后将插件文件(rabbitmq_delayed_message_exchange-4.0.2.ez)放置到RabbitMQ的插件目录(/usr/lib/rabbitmq/…

HaluMem:揭示当前AI记忆系统的系统性缺陷,系统失效率超50%

用过聊天机器人的人都遇到过这种情况:你刚说喜欢科幻小说,几轮对话后它给你推荐言情小说。你告诉聊天机器人升职了,但是过会儿又他又问你职业。这种情况不只是健忘而是根本性的bug——AI不仅会丢上下文,还会凭空编…

团队作业2-需求规格说明书

| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience | | 这个作业要求在哪里| https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13481 | | 这…