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

高维前缀和(SOSDP)

时间:2023-03-14 23:33:52浏览次数:60  
标签:前缀 int sum SOSDP 1010 高维

高维前缀和(SOS dp)

A Xor B Problem again

二维前缀和

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

其实也可以分开来写


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

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

每一维分开求,这其实也是高维前缀和的求法。

高维前缀和

用一个二进制串来代表维数,例如1010,来表示一个四维的坐标系,那么sum[1010]统计的就是在四个维度都小于1010的数的和,即1010、1000、0010、0000

代码如下

for (int i = 0; i <= 20; i++) // 枚举维度
    for (int j = (1 << MAX) - 1; j >= 0; j--) { // 枚举状态
        if (j >> i & 1) {
            sum[j] += sum[j ^ (1 << i)];
        }
    }

标签:前缀,int,sum,SOSDP,1010,高维
From: https://www.cnblogs.com/rufu/p/17216913.html

相关文章

  • 「双指针&前缀和&回溯法」weight
    本题为3月14日23上半学期集训每日一题中B题的题解题面题目描述已知原数列\(a_1,a_2,\cdots,a_n\)中的前1项,前2项,前3项,...,前n项的和,以及后1项,后2项,后3项,...,后n项......
  • 前缀和
    题目难度要点区域和检索-数组不可变●构造前缀和数组,避免每次O(n)遍历统计区间和二维区域和检索-矩阵不可变●矩阵前缀和,并通过矩阵加减拼凑目标矩阵......
  • 前缀和 和 差分
    前缀和P1115最大子段和1#include<iostream>2#include<cmath>3usingnamespacestd;4constintN=2*100010;5intn,a;//保存原数列6longlongb[N];/......
  • python 批量提取.txt文件的前缀名称
    importtkinterastk#导入tkinter库设置别名tkimportosimporttimeimportglobroot=tk.Tk()#生成主窗口root.title('文件提取器')#设置窗体名字root......
  • 算法笔记之前缀和与差分
    什么是前缀和定义前缀和(PrefixSum):对于一个给定的数列\(a\),它的前缀和数列\(sum\)是通过递推能求出来得\(sum_i=\sum_{j=1}^{i}a_j\)部分和。也就是指某一序列......
  • 最大前缀和C++
    //给出一个长度为 n 的序列 a,选出其中连续且非空的一段使得这段和最大。#include<iostream>usingnamespacestd;constintN=2e5+10;//注意全局常量必须在前面添加c......
  • 算法基础1.4.1前缀和与二维前缀和
    前言前缀和其实不能说是一种算法,它也并不会单独出现题目中。应该说是一个比较简单,但是容易被人忽略的工具正文所谓前缀和,就是一个用来计算数组某个区间内所有数之和的一......
  • 申报发布项目单点登录调试时候,前端请求前缀带了sbgl,没有重写sbgl,然后后端数据库的路由
       1.从数据库修改表数据,redis不会更新这个数据,所以得重启redis才能看到最新效果,但是你从前端界面修改路由的话,那就不用立马重启redis,因为一般自己设计的框架都会自......
  • 前缀和
    前缀和大大缩短运算所需时间,但要牺牲一大部分空间。例题:B3612【深进1.例1】求区间和-洛谷|计算机科学教育新生态(luogu.com.cn)在本题中有一个新思路原数组a:i1,i2......
  • leetcode 14. 最长公共前缀
    直接法直接法又分为竖向扫描和横向扫描,以下的这种方式就是竖向扫描classSolution{publicStringlongestCommonPrefix(String[]strs){StringBuilderc......