高维前缀和
高维前缀和
高维前缀和,就是对每一个高维空间的点
一种做法是容斥,在此不详讲,复杂度
以二维为例:
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];
另一种做法是降维。
考虑
考虑
复杂度
仍以二维为例:
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)]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App