首页 > 其他分享 >如何优雅的处理特殊的子集 dp 问题

如何优雅的处理特殊的子集 dp 问题

时间:2024-02-02 19:44:07浏览次数:27  
标签:... 前缀 sum 优雅 leq 子集 高维 dp

sosdp & 高维前缀和

\[g_i = \sum_{j \& i > 0} f_j (i \leq 2^n - 1) \]

我们将 \(i, j\) 进行二进制拆分,拆成 \(n\) 个维度。

类似于:

\[g_{a_1, a_2, a_3, a_4, a_5 ... a_n} = \sum_{a_k \leq b_k} f_{b_1, b_2, b_3, b_4, b_5 ... b_n} (a_i, b_i \subseteq \{0, 1\}) \]

我们发现这个问题本质上就转化成了一个高维前缀和。

code :

int len = (1 << n) - 1;
rep(i, 0, n - 1) {
    rep(j, 0, len) {
        if(!(j & (1 << i))) f[j | (1 << i)] = (f[j | (1 << i)] + f[j]) % P;
    }
}

例题:
CF1679E Typical Party in Dorm

标签:...,前缀,sum,优雅,leq,子集,高维,dp
From: https://www.cnblogs.com/Kafuchino/p/18003741

相关文章

  • AT_dp 26 题
    AT_dp26题A.Frog1直接dp。设\(f_i\)表示调到石头\(i\)的最小费用,则有\[f_i=\min(f_{i-1}+\left|a_i-a_{i-1}\right|,f_{i-2}+\left|a_i-a_{i-2}\right|)\]B.Frog2上一题的升级版,同样设\(f_i\)表示调到石头\(i\)的最小费用,则有\[f_i=\min_{j=i-k}^{i-1}f_j+\lef......
  • WordPress 技巧:解决 3.6 版本的 "wpdb::escape is deprecated" 错误提示
    来源:http://www.shanhubei.com/archives/13621.html升级到WordPress3.6之后,发现在debuglog中有很多以下的错误信息:Notice:wpdb::escapeisdeprecatedsinceversion3.6!Usewpdb::prepare()oresc_sql()instead.这个错误信息的意思是WordPress3.6将$wpdp类......
  • WPF魔法:轻松实现依赖注入与控制反转提升代码优雅性与可维护性
     概述:在WPF中实现依赖注入和控制反转,通过定义接口、实现类,配置容器,实现组件解耦、提高可维护性。什么是依赖注入和控制反转?依赖注入(DependencyInjection,DI): 是一种设计模式,旨在减少组件之间的耦合度。通过依赖注入,对象不再自行创建或查找依赖对象,而是通过外部注入的方式提......
  • 响应式的 WebFlux 框架更优雅,性能更强!
    spring-webflux是spring在5.0版本后提供的一套响应式编程风格的web开发框架。这个框架包含了spring-framework和springmvc,它可以运行在Netty、Undertow以及3.1版本以上的Serlvet容器上。你可以在项目中同时使用spring-webmvc和spring-webflux,或者只用其中一个来开发web应用。所谓......
  • SpringBoot利用ThreadPoolTaskExecutor批量插入百万级数据实测!
    开发目的: 提高百万级数据插入效率。采取方案: 利用ThreadPoolTaskExecutor多线程批量插入。采用技术: springboot2.1.1+mybatisPlus3.0.6+swagger2.5.0+Lombok1.18.4+postgresql+ThreadPoolTaskExecutor等。application-dev.properties添加线程池配置信息#异步线程配置#配置核......
  • ajax与action,WordPress主题开发之wp_ajax_{$action}和wp_ajax_nopriv_{$action}的区
    wp_ajax_{$action}和wp_ajax_nopriv_{$action}是WordPress主题开发常用的函数,这两个函数经常用在ajax交互功能上。例如ajax表单登录,ajax提交表单等。本篇文章主要讲述了wp_ajax_{$action}和wp_ajax_nopriv_{$action}之间的区别。WordPress中AJAX请求方式在说wp_ajax_{$action}......
  • const copyStories = [...stories] 和 let storiesToDisplay = stories.slice(); 两
    constcopyStories=[...stories]和letstoriesToDisplay=stories.slice();两种复制数组的方式,哪种更优雅?在JavaScript中,constcopyStories=[...stories](使用扩展运算符)和letstoriesToDisplay=stories.slice()都可以用来复制数组,并且都能生成一个新的数组。这两种......
  • csharp 远程桌面登录 mstsc rdp文件
    RemoteDesktopConnection\src\LogInfo.csnamespaceRDP{classLogInfo{publicstringIpaddress{get;set;}publicstringUsername{get;set;}publicstringPassword{get;set;}}}RemoteDesktopConnection\src......
  • LLM面面观之RLHF平替算法DPO
    1.背景最近本qiang~老看到一些关于大语言模型的DPO、RLHF算法,但都有些云里雾里,因此静下心来收集资料、研读论文,并执行了下开源代码,以便加深印象。此文是本qiang~针对大语言模型的DPO算法的整理,包括原理、流程及部分源码。2.DPOvsRLHF  上图左边是RLHF算法,右边为DPO算......
  • 2024年上半年NPDP产品经理认证【报名到这】
    产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是全球范围内产品开发与管理专业人士最杰出的倡导者,协助个人、企业或......