首页 > 其他分享 >高维前缀和与 SOSDP

高维前缀和与 SOSDP

时间:2023-01-07 10:33:07浏览次数:33  
标签:前缀 int sum SOSDP cdots 高维

高维前缀和

高维前缀和,就是对每一个高维空间的点 \((a_1,a_2,\cdots,a_k)\) ,求 \(\displaystyle \sum_{b_1=0}^{a_1} \sum_{b_2=0}^{a_2}\cdots \sum_{b_k=0}^{a_k} val_{(b_1,b_2,\cdots,b_k)}\)

一种做法是容斥,大概就是求出除了 \((a_1,a_2,\cdots,a_k)\) 之外的所有点之和。复杂度 \(\mathcal O(n^k\cdot 2^k)\)

以二维为例:

for(int i=1;i<=n;++i)
    for(int j=1;j<=n;++j)
        sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+a[i][j];

另一种做法是降维,即每次只考虑一个求和号做线性前缀和。复杂度 \(\mathcal O(n^k\cdot k)\)

仍以二维为例:

for(int i=1;i<=n;++i)
    for(int j=1;j<=n;++j)
        sum[i][j]+=sum[i][j-1]+a[i][j];
for(int i=1;i<=n;++i)
    for(int j=1;j<=n;++j)
        sum[i][j]+=sum[i-1][j];

SOSDP

即求子集权值和。考虑到这等价于一个高维前缀和问题。

直接给出代码:

// f[s] 初始值为 val[s]
for(int i=0;i<k;++i)
    for(int s=0;s<(1<<k);++s)
        if(s&(1<<i)) f[s]+=f[s^(1<<i)]

标签:前缀,int,sum,SOSDP,cdots,高维
From: https://www.cnblogs.com/pref-ctrl27/p/17032202.html

相关文章

  • 有用的技巧(前缀、差分、位运算、快速幂、倍增)
    前缀和一维前缀和 for(inti=1;i<=n;++i){pre[i]=pre[i-1]+a[i];}二维前缀和 for(inti=1;i<=n;++i){......
  • Abp 框架统一设置表名前缀和 Schema
    Abp框架统一设置表名前缀、Schema太长不看版:对于内置表,在所有启动项目(不包括XXX.DbMigrator)的Program.cs文件和XXXDbContextFactory中,设置AbpCommonDbProperties......
  • [LeetCode]014-最长公共前缀
    >>>传送门题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例示例1输入:strs=["flower","flow","flight"]输出:"fl"......
  • 高精度+前缀和+差分
    高精度+前缀和+差分高精度高精度加法大整数存储:将数字存到数组里,第一个位置存个位,第二个位置存十位......从\(A_0+B_0\)开始算起,算个位,满十进一易错点:将数字存在......
  • 【LeeCode】14. 最长公共前缀
    【题目描述】编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ​​""​​。​​​​https://leetcode.cn/problems/longest-common-prefix......
  • 前缀和,差分
    前缀和,差分通俗理解前缀和听起来好高级啊,那么他究竟是什么啊?当询问一个区间[l,r]的和sum(忽略掉O(n)的暴力,它就发挥了大用处。基本的前缀和如下:s[i]=s[i-1]+a[i]......
  • 差分数组 前缀和数组
    小结:1、有数组d=[1,2,3,4,5,6],对d[2]到d[4]之间的所有数加上3,变为d=[1,2,6,7,8,6],那么差分数组也就从[1,1,1,1,1,1]变成了[1,1,4,1,1,-2]  Leetcode刷题笔记——差......
  • 数据分享|R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化
    全文链接:http://tecdat.cn/?p=22262最近我们被客户要求撰写关于心脏病数据的研究报告,包括一些图形和统计输出。在讨论分类时,我们经常分析二维数据(一个自变量,一个因变量)......
  • 【新生寒训】day 3 前缀和、差分
    【新生寒训】day3前缀和、差分学习这里:https://oi-wiki.org/basic/prefix-sum/后面也有附习题,可以看看✨然后上几道小题~P1387最大正方形;二分;货仓选址此外,可以做一......
  • D. Valiant's New Map (二位前缀和)
    D.Valiant'sNewMap题目大意给定一个二维数组,要求找到满足限制条件的最大正方形,限制条件为:正方形内所有元素都不小于该正方形的边长。解题思路显然可以二分答案,解题......