首页 > 其他分享 >学校(抽象dp)

学校(抽象dp)

时间:2023-10-23 23:46:22浏览次数:28  
标签:limits sum 容斥 合法 学校 抽象 dp 性质

题目简述


选择的学校编号依次为 \(p1, p2, p3, ..., pk(1 ≤ p1 < p2 < ... < pk ≤ n)\),若存
在 \(i(1 ≤ i ≤ k − 3)\) 使得 $ a_{p_i} ⊕ a_{p_{i+1}} ⊕ a_{p_{i+2}} ⊕ a_{p_{i+3}} = s $,则该序列不合法。
求在所有 \(2^{n − 1}\) 个可能的序列中问有多少个序列合法。
你只需要输出答案 \(mod \ 998244353\) 之后的结果即可。

分析 & 性质


大力容斥没有前途。

  • 考虑dp: \(dp[i][j][k] \leftarrow dp[j][k][l]\) 判断不合法,\(3D0D\) 转移, 期望60pts。

  • 有个性质,\(i(i, j, k, l, i')\)不合法时 \(i\) 和 \(i'\) 不等.

  • 然后压状态 \(dp[i][j] \leftarrow \sum \limits _{j, k} ^ {} dp[j][k] - \sum \limits _{i⊕j⊕k⊕l \ne S} ^ {}dp[k][l]\)

  • 思路就是容斥,然后正确性由性质保证。从 \(\sum \limits _{j, k} ^ {} dp[j][k]\) 中去掉 \(l\) 不合法的情况,减去 \(\sum \limits _{i⊕j⊕k⊕l \ne S} ^ {}dp[k][l]\) ,但是在一般情况下难以保证 \(j\) 合法,但是性质导致一定不存在第二个i,so, \(j\) 一定合法, 容斥时,可保证i不合法且j, k, l都合法的情况被减去。

最终思路


  • 考虑拆贡献,可发现对于一个 \(dp[i][j]\) , \(dp[k][l]\) 只被贡献一次, 开桶统计即可; 对于dp[j][k],前缀和优化即可, \(2D0D\), 期望100pts。

(一开始写的是容斥 \(n^3\) 还没上面那个60好写,就是没发现互不相同的性质)

标签:limits,sum,容斥,合法,学校,抽象,dp,性质
From: https://www.cnblogs.com/langligelangsblog/p/17783691.html

相关文章

  • 使用 DDPO 在 TRL 中微调 Stable Diffusion 模型
    引言扩散模型(如DALL-E2、StableDiffusion)是一类文生图模型,在生成图像(尤其是有照片级真实感的图像)方面取得了广泛成功。然而,这些模型生成的图像可能并不总是符合人类偏好或人类意图。因此出现了对齐问题,即如何确保模型的输出与人类偏好(如“质感”)一致,或者与那种难......
  • Linux平台下Oracle数据泵备份(expdp)SHELL脚本
    数据泵是Oracle10g的新特性,10g以后的版本才有。关于数据泵的理论知识参考我的Blog:Oracle10gEXPDP和IMPDP使用说明http://www.cndba.cn/Dave/article/1115 Logicalbackup.sh#!/bin/ksh#####################################################################......
  • 网络tcp与udp协议
    TCP协议TCP(transportcontrolprotocol,传输控制协议)是面向连接的,面向流的,提供高可靠性服务。收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据块,然......
  • C语言数据类型占用字节大小+modport存在的意义+传输延迟和惯性延迟+上下拉+forwarding
    C语言数据类型占用字节大小最大整形宽度是8字节。modport存在的意义似乎modport的存在没有意义了。只是将信号变得更冗长。但是又是有意义的,因为modport里的赋值变化是没有延迟的,而clocking受到配置的影响。https://blog.csdn.net/hh199203/article/details/127230498传输......
  • 使用Spring Integration接收TCP与UDP请求
    1.简介SpringIntegration是一个开源的项目,它是Spring生态系统的一部分,旨在简化企业集成(EnterpriseIntegration)的开发。它提供了一种构建消息驱动的、松散耦合的、可扩展的企业应用集成解决方案的方式。SpringIntegration基于SpringFramework构建,使开发者能够更容易地......
  • Rockchip RK3399 - DRM eDP驱动程序
    在《RockchipRK3399-DRM驱动程序》》我们已经介绍过了,RK3399有两个VOP,均可以支持HDMI、eDP、DP、MIPIDSI0、MIPIDSI1显示接口,本节我们选择eDP作为分析的对象。一、设备树配置1.1edp设备节点设备节点vopb下的子节点vopb_out_edp通过edp_in_vopb(由remote-endpoint属性指定)......
  • dpkg: error processing package *** (--configure)错误解决办法
    问题记录dpkg:errorprocessingpackage***(--configure)错误解决办法https://blog.csdn.net/dou3516/article/details/1051202211.sudomv/var/lib/dpkg/info//var/lib/dpkg/info_old/2.sudomkdir/var/lib/dpkg/info/3.sudoaptupdate......
  • java基础补习继承、抽象和接口
    之前java都是快速入手,很多的基础知识不牢固。没有系统学过。但是现在系统学也有点费时间,我就是碰到那些基础知识不懂或者不太明白时去找对应课程那一小节去学习那些知识。今天就小小学习了下java的继承、抽象还有接口等基础知识。 ......
  • 21.3 Python 使用DPKT分析数据包
    dpkt项目是一个Python模块,主要用于对网络数据包进行解析和操作。它可以处理多种协议,例如TCP、UDP、IP等,并提供了一些常用的网络操作功能,例如计算校验和、解析DNS数据包等。由于其简单易用的特性,dpkt被广泛应用于网络安全领域,例如流量分析、漏洞利用、入侵检测等。使用该库可以快速......
  • 设计模式-抽象工厂模式
    抽象工厂模式(AbstractFactoryPattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工......