首页 > 其他分享 >agc061_c 容斥+dp

agc061_c 容斥+dp

时间:2023-02-17 00:34:31浏览次数:38  
标签:每个 队列 钦定 元素 容斥 agc061 区间 dp

题意

有两个长度为 \(n\) 的严格递增序列 \(A_i,B_i\),满足 \(\forall i\le n,A_i < B_i\),且 \(A_i\) 和 \(B_i\) 的所有元素恰好取遍 \(1-2n\)。现在有一个队列,对于 \(1\) 到 \(n\) 每个数 \(i\),既可以在 \(A_i\) 时刻加入队尾,也可以在 \(B_i\) 时刻加入队尾,问最终能形成多少种不同的队列。

解答

对于每个元素 \(i\),假若某一个最终形成的队列与 \(i\) 加入队列的时刻无关(此时该元素称为钦定元素),则所有满足 \(B_j > A_i\) 的 \(j\) 都只能在 \(A_j\) 时刻入队,所有满足 \(A_j < B_i\) 的 \(j\) 都只能在 \(B_j\) 时刻入队,记满足 \(A_j < B_i\) 的最大的 \(j\) 为 \(L_i\),满足 \(A_j < B_i\) 的最大的 \(j\) 为 \(R_i\),则每个 \(i\) 对应了一个区间 \([L_i, R_i]\),区间内的每个元素的选择方式都是固定的。

对于两个钦定元素元素 \(i_1, i_2\) ,易知其对应的的区间是不交的。

考虑容斥,每次钦定一个集合,那么集合内每个元素对应的区间都不交,不在这些区间内的数都视为任意交换都会形成一种新方案,这样的方案数为 \(2^k\)(\(k\) 为非钦定元素数量),容斥的话,每个钦定的集合 \(S\) 对应的权值就是 \((-1)^{|S|}2^k\)。

那么就是一个简单的 \(O(n)\) dp了。

记 \(f_i\) 表示仅考虑前 \(i\) 个数的所有方案权值之和,那么遍历 \(1-n\) 每个数,当前遍历到 \(i\) 时。

\(f_i += 2f_{i-1}\) (加入空元素)

$f_{R_i} += -f_{L_i-1} $(加入对应区间)

标签:每个,队列,钦定,元素,容斥,agc061,区间,dp
From: https://www.cnblogs.com/0922-Blog/p/agc061_c.html

相关文章

  • 从 PyTorch DDP 到 Accelerate 到 Trainer,轻松掌握分布式训练
    概述本教程假定你已经对于PyToch训练一个简单模型有一定的基础理解。本教程将展示使用3种封装层级不同的方法调用DDP(DistributedDataParallel)进程,在多个GPU上......
  • wordpress 部署问题
    架构ingress---->apache2-php-fpm+wordpresmix-content问题ingresshttps协议转发到wordpresshttp协议时访问出现mix-content问题需要如下配置location/bl......
  • Educational Codeforces Round 103 (Rated for Div. 2)D(dp) E(拓扑序+trie树)
    EducationalCodeforcesRound103(RatedforDiv.2)D(dp)E(拓扑序+trie树)D.Journey题目大意:给定n+1个点(从0开始),每两个相邻的点之间有一条边,最初每条边上有一个......
  • 浅析排列组合、斯特林数、贝尔数、二项式定理与推论及其反演、子集反演、广义容斥
    浅析排列组合、斯特林数、贝尔数、二项式定理与推论及其反演、子集反演、广义容斥目录浅析排列组合、斯特林数、贝尔数、二项式定理与推论及其反演、子集反演、广义容斥更......
  • 浅谈 DDP 与 广义矩阵乘法
    浅谈DDP与广义矩阵乘法目录浅谈DDP与广义矩阵乘法更好的阅读体验戳此进入引入例题#1广义矩阵乘法DDP例题#0例题#0.5例题#1例题#2例题#3UPD更好的阅读体验戳......
  • openeuler加载dpdk驱动模块
    虽然是openeulerarm架构加载dpdk网卡驱动,但是linux加载驱动模块的流程和方法是一样的,遇到的问题也是相似的,所以借这个机会把相关的内容介绍一下确认模块名称驱动模块开......
  • 【解决方案】docker: Error response from daemon: endpoint with name nacos already
    问题描述修改nacos配置时,保存报错于是重启nacos,nacos使用Docker部署。重启nacos容器时,遇到如下问题:[root@localhost~]#dockerstartb7236a0545a3Errorrespons......
  • Sokit(TCP/UDP调试工具)
    下载:http://www.winwin7.com/soft/56522.html#xiazai   Sokit中文版是一款免费开源的TCP/UDP测试(调试)工具,它主要可以用于接收和发送TCP/UDP数据包,让你更深的了解网......
  • 使用xrdp实现Windows 远程桌面linux
    一般情况下我们用ssh客户端远程登陆Linux系统,至于图形界面下的Linux远程登陆工具,我们一般都会想到vnc,但它的安全性不够,在这里,我将介绍XRDP的安装配置......
  • yolov5 DDP
    目录0.一些概念:1.local_rank参数2.init_process_group,torch.distributed.barrier需要先初始化一下3.注意随机种子需要设置每个进程不一样4.model需要ddp包装一下5.......