首页 > 其他分享 >「Log」做题记录 2023.10.30-

「Log」做题记录 2023.10.30-

时间:2023-11-01 09:34:23浏览次数:57  
标签:连边 概率 Log 2023.10 状态 color 对于 30 考虑

\(2023.10.30-2023.11.1\)

\(\color{blueviolet}{AT\_abc285\_g}\)

神秘题。

网络流是显著的,建边方式如下:

  • 所有边容量都为 \(1\)。
  • 每个点拆为入点和出点,\(S\) 向入点连边,出点向 \(T\) 连边。
  • 1 的入点向出点连边。
  • 2 的出点向四联通的 2? 的入点连边
  • ? 当做上两个处理。

考虑到唯一一种使得其不可行的构造是出现奇环,但网格显著并无奇环。

\(\color{blueviolet}{CF1530F}\)

此题是神秘题。

考虑反着做,将至少有一行或一列或一条对角线全为 \(1\) 概率转换为所有行列对角线都至少有一个 \(0\)。

先不考虑行与对角线,只考虑满足所有列都至少有一个 \(0\) 该怎么做,为了使得我们的不完全做法有扩展性,我们考虑使用容斥。

过程如下:

  1. 加上至少有 \(0\) 列全为 \(1\) 的概率。(对于至少有 \(x\) 列全为 \(1\) 的概率,可以理解为我们选定 \(x\) 列,使得其全为 \(1\)(概率相乘),其他列的 \(0/1\) 情况我们不考虑(概率为 \(1\))。而选定的 \(x\) 列的所有情况概率要加和,比如我选定 \(1\) 列,那么情况总数有 \(n\) 种,这些情况的概率都要加和。)

  2. 减去至少有 \(2\) 列全为 \(1\) 的概率。

  3. 加上至少有 \(3\) 列全为 \(1\) 的概率。

  4. 以此类推。

这样容斥并不难理解,我们需要求的是所有列至少有一个 \(0\) 的情况,对于第一步加的概率显然是全情况的概率,我们减去其中有一列为 \(1\) 的概率,但此时对于两行为 \(1\) 的情况我们减了两遍。举个例子,对于 \(1,2\) 号列全为 \(1\) 的某种情况,我们选定 \(1\) 号列时和选定 \(2\) 好列时分别减去了一遍,所以要在接下来的运算中将其加回来,以此类推。

接下来考虑在这样计算列的贡献时计算行的贡献,首先每一行的贡献互不影响,考虑固定选定的列进行某一行的运算,我只要保证舍去行的全为 \(1\) 的概率即可。我们设 \(f_{i,j}\) 表示对于第 \(i\) 行,选定 \(j\) 状态列(\(j\) 是一个状压状态,这里选定其中的列就相当于在第 \(i\) 行中该位置一定为 \(1\)。),不考虑其他位置 \(0/1\) 状态的概率。这个东西显然是可以预处理的。

于是就有第 \(i\) 行在状态 \(j\) 下的贡献概率 \(g_{i, j} - g_{i, 2 ^ {n - 1}}\),其中我们减掉的是此行全为 \(1\) 的状态,也就是上文说到舍去的部分

最后对角线与列的处理相同,枚举一下状态即可,使得一行与对角线交点的位置为 \(1\) 即可。

\(\color{blueviolet}{CF1530F}\)

此题是坏题,他卡你空间。

每一个元素有选或不选两种状态,并且有依赖项,元素的贡献有正负,数据范围不大,可以自然联系到最大权闭合子图,采用最小割模型。

建模方式如下:

  1. 对于一个正权点 \(u\),连边 \(S \to u\),容量为 \(b_i\)。
  2. 对于一个负权点 \(u\),连边 \(u \to T\),容量为 \(-b_i\)。
  3. 对于所有 \(i\),对于其所有依赖的 \(j\) 连边,容量为正无穷。

但这样建边空间就爆炸了,考虑到值域很小,一个数不同约数个数不会很多。对于一个数 \(a_i\),枚举其约数 \(x\),对于每一个 \(x\) 只需要向最近的 \(x\) 建边即可,这样由于依赖关系的传递性不会出问题。

现在考虑最小割的意义,对于源点到正权点的一条边流满表示这个点我们舍弃掉了,对于负权点到汇点的边流满表示这个点我们被迫选择了,所以有答案 \(\left( \sum \limits _ {b_i > 0} b_i \right) - f\),其中 \(f\) 为最小割。

\(\color{royalblue}{CF1517E}\)

思考发现最后的串只能是 C/P CCC PCPCPC PPP C/P 或者 PPPPP CCCCC 这种形式,大力分类讨论,注意细节即可。

\(\color{blueviolet}{CF1511F}\)

先建 Trie 树,设 \(f_{i, u, v}\) 到第 \(i\) 个字符,两个分割分别处在 \(u\) 节点与 \(v\) 节点的方案数。

暴力转移是简单的,数据范围提醒我们要用矩阵优化,对于一个状态(有序数对)\((u, v)\) 建立一个点,若状态 \((u, v)\) 可以向 \((u', v')\) 转移,则在代表两个状态的点之间连边。

特殊地,若 \(u'\) 是终止节点,则 \((u', v')\) 同时具有 \((0, v')\) 的转移,\(v'\) 也同理;若 \(u', v'\) 都是终止节点,状态 \((u', v')\) 同时具有 \((0, 0)\) 的转移。

所以对于上述情况,\((u, v)\) 也可以向 \((u', v')\) 的等价状态连一条边,于是我们得到了一个有向图,等价于让我们求长度为 \(m\) 的从 \((0, 0)\) 到 \((0, 0)\) 路径条数,但此时状态数是 \(1600\) 左右的,显然我们不能接受,考虑优化方式。

首先对于状态 \(u, v\) 它可能是不存在的,因为 \(u, v\) 在 Trie 树上的形态必然是祖先和子代的关系,状态数来到 \(320\) 左右,再考虑 \((u, v)\) 和 \((v, u)\) 在上述图中是对称的存在,考虑在矩阵中所成一个状态即可。

\(\color{limegreen}{CF1490G}\)

塞到 set 里乱搞即可。

标签:连边,概率,Log,2023.10,状态,color,对于,30,考虑
From: https://www.cnblogs.com/Eon-Sky/p/17802208.html

相关文章

  • 开源 2 年、打磨 13 年、300 万行代码的开源项目
    从刻在石壁上的甲骨文,再到写在纸上的汉字,每一次信息载体的变更都是文化进步的重要标志。在如今这个信息数字化的时代,我们在享受着数字化便利的同时,数据也在我们看不见的地方飞速增长着,数据的重要性不言而喻。那应该如何将海量数据完整、有序、持久化地保存下来呢?程序员小伙伴看......
  • 2023.10.31 USACO 2020 选做.md
    P6009Non-DecreasingSubsequencesP由于值域很小,dp的转移不难想到写成矩阵的形式。考虑维护矩阵的前缀积和逆前缀积。然而单次的矩阵乘已经达到\(O(k^3)\)超时了,但是我们发现其实矩阵非\(0\)的位置是\(O(k)\)个的,所以复杂度降到了\(O(k^2)\).关于逆矩阵,我们无需高斯......
  • 每日总结10.30
    今天是充实而多样化的一天,上午的工程实训让我体验到了一项实际的工作任务,但也让我感到相当劳累。锯铁片花费了我整整两个小时,这不仅锻炼了我的体力,也培养了耐心和解决问题的能力。这个经历教会了我不仅要有技术,还要有毅力和决心来应对挑战。下午的Java考试揭示了我在这门课程中的......
  • html+css设计logo
    1.实现以下logo2.代码如下......
  • 【专题】工业数字化/智能化2030白皮书报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34132原文出处:拓端数据部落公众号自18世纪中期工业革命以来,人类进入工业社会。在历次工业革命中,人类通过发明创造和管理革新,改进生产方式、降低成本、提高效率,随之而来的是生活、物质、文化、教育等各方面的变化,人际关系和社会结构也得以重塑。如......
  • [Azure Developer]把Azure Function中ILogger对象静态化为静态方法提供日志记录
    问题描述在AzureFunction代码中,有默认的ILogger对象来记录函数的日志,如果函数引用了一些静态对象,是否有办法使用这个默认的ILogger对象来记录日志呢?usingSystem.Net;usingMicrosoft.Azure.Functions.Worker;usingMicrosoft.Azure.Functions.Worker.Http;usingMicrosoft.Ext......
  • 钡铼技术BL304基于ARM工控机驱动智慧交通发展
    在交通运输领域,钡铼技术ARM工控机可以实现以下功能:实时监控和管理:利用钡铼技术ARM工控机,可以对交通运输中的车辆、船只、飞机等进行实时监测和管理,帮助调度员提高车辆调度和路线规划的准确性和效率。安全保障:利用钡铼技术ARM工控机,可以建立健全的交通安全预警系统,及时响应各种突发......
  • [Azure Developer]把Azure Function中ILogger对象静态化为静态方法提供日志记录
    问题描述在AzureFunction代码中,有默认的ILogger对象来记录函数的日志,如果函数引用了一些静态对象,是否有办法使用这个默认的ILogger对象来记录日志呢?usingSystem.Net;usingMicrosoft.Azure.Functions.Worker;usingMicrosoft.Azure.Functions.Worker.Http;usingMicrosoft......
  • 使用.NET 6创建Windows Service项目并配置使用Serilog
    一.创建WindowsService项目二.添加Serilog对应的NuGet包三.编写Serilog配置文件双击打开appsettings.json,并录入以下配置:四.在Program.cs启动代码中配置Serilog 五.测试结果 ......
  • 每日总结-23.10.30
    今天完成关于hadoop中spark的安装和使用教程地址:https://dblab.xmu.edu.cn/blog/4322/https://blog.csdn.net/qq_53336526/article/details/131717423由于之前安装的hadoop版本为2.7.5,因此spark版本改用2.4.5,maven版本依旧可以使用教程中的3.9.2另外教程中的所有路径都需要修......