Description

有个m维的空间,并且每一维的坐标x都满足x∈ [0, 3]并且x为整数。
这个空间有n个部落,每个部落都坐落在这片空间中的一个点上,可以用坐标(x1, x2, …, xm)来表示。
有些部落可能在在同一个点上面。
定义两个点的距离为它们的曼哈顿距离,即每一维坐标差的绝对值的和。
比如对于点(x1, x2, …, xm)和(y1, y2, …, ym),它们之间的距离为
现在对0~3m之间的每一个数字x,统计有多少对部落之间的距离为x。
注意,一对部落是有序的,即部落(a, b)和部落(b, a)为不同的两对。
n<=200000,m<=9

Solution

考虑状压DP

设F[i][j][k]F[i][j][k]表示只考虑前i维,到j这个四进制状态(将每一维状态压入)需要K步的点数

按位转移即可。
注意滚动

Code

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fod(i,a,b) for(int i=a;i>=b;i--)
#define N 200005
#define LL long long
using namespace std;
int f[2][263005][29];
LL ans[29];
int n,m,a[N][9],cf[11],vl[N];
int main()
{
    cin>>n>>m;
    cf[0]=1;
    fo(i,1,10) cf[i]=cf[i-1]*4;
    fo(i,1,n)
    {        int v=0;
        fo(j,0,m-1) scanf("%d",&a[i][j]),v+=cf[j]*a[i][j];
        f[0][v][0]++;
        vl[i]=v;
    }
    int p=1;
    fo(i,1,m)
    {        fo(j,0,cf[m]-1) fo(l,0,3*(i-1)) f[p][j][l]=0;
        fo(j,0,cf[m]-1)
        {            int v=j/cf[i-1]%4;
            fo(l,0,3*m)
            {                if(f[1-p][j][l])
                fo(k,0,3)
                {                    f[p][j-v*cf[i-1]+k*cf[i-1]][l+abs(v-k)]+=f[1-p][j][l];
                }
            }
        }
        p=1-p;
    }
    fo(i,0,3*m)
    {        fo(j,1,n) ans[i]+=f[m%2][vl[j]][i];
        printf("%lld ",ans[i]);
    }
}   

[51Nod 1920] 空间统计学相关推荐

  1. 51nod 1920 空间统计学 动态规划

    题意 有个m维的空间,并且每一维的坐标x都满足x∈ [0, 3]并且x为整数. 这个空间有n个部落,每个部落都坐落在这片空间中的一个点上,可以用坐标(x1, x2, -, xm)来表示. 有些部落可能 ...

  2. 白话空间统计二十七:统计学七支柱之空间统计版本(二)聚合(2)

    还记得a long long time ago 的青葱岁月--作为学渣的虾神最怕的就是各种(不擅长)的考试,虾神读书时候有个习惯,就拿到试卷之后,第一时间会把试卷翻到最后一页,去看最后一道大题.然后以 ...

  3. #中regex的命名空间_Python空间分析||geopandas安装与基本使用

    Python空间分析--geopandas安装与基本使用 一.geopandas安装 二.geopandas数据读取与存储 导入包 从geopandas自带的数据库中读取数据 从本地读取shp数据 显 ...

  4. 空间统计笔记之一(基础知识)

    前段时间在学习空间统计相关的知识,于是把ArcGIS里Spatial Statistics工具箱里的工具好好研究了一遍,同时也整理了一些笔记上传分享.这一篇先聊一些基础概念,工具介绍篇随后上传. 空间 ...

  5. ArcGIS中实现空间内插

    ArcGIS中实现空间内插 来自书籍<地统计学(现代空间统计学)> 来自书籍<地统计学(现代空间统计学)>

  6. 应用统计学与R语言实现学习笔记(八)——方差分析

    Chapter 8 ANOVA 本篇是第八章,内容是方差分析.前一段考试,汇报,作业.忙不过来,停更了一段时间,现在重新开始更这一部分内容.方差分析是很多实验的基础以及很重要的分析手段,这一章内容相比 ...

  7. 白话空间统计之:空间异质性

    横看成岭侧成峰,远近高低各不同. 不识庐山真面目,只缘身在此山中. --苏轼<题西林壁> 读完这首诗,我首先检讨一下自己,我一直误记这首诗是李白写的,因为总记得李白写过有关庐山的,但是仔细 ...

  8. 新版白话空间统计(12):P值的表达以及空间统计上的特性

    CSDN的被爬虫专用声明:虾神原创,公众号\知乎:虾神说D 转发.转载和爬虫,请主动保留此声明. 上篇文章简单介绍了P值与Z得分的一些基本概念,大家其实也都知道,P值和Z得分其实是有一定的相应关系的, ...

  9. 白话空间统计之:Moran's I(莫兰指数)

    前两天聊了空间统计学里面的两个经典概念,今天来说说第一篇文章留下的大坑: Moran's I . 首先,Moran's I这个东西,官方叫做:莫兰指数,是澳大利亚统计学家帕特里克·阿尔弗雷德·皮尔斯· ...

最新文章

  1. Linux一键部署duckchat,宝塔面板部署DuckChat(翻译:鸭信)- 一个简约好用的网络聊天平台...
  2. android 动态矩形条,android – 从相机中动态检测不同形状(圆形,方形和矩形)?
  3. windows下,linux下c++生成文件夹
  4. Object to XML
  5. git基本操作:上传代码
  6. mysql独立开发_nacos的mysql独立部署
  7. python的安全插件
  8. 设计模式笔记2-简单工厂模式(带有自制UML类图)
  9. 在网页输出10的阶乘.php,VB 用for循环语句编写程序,计算和输出10的阶乘
  10. 线性回归最小二乘法公式推导
  11. 6个UI面试技巧让你轻松入职大公司
  12. C#简单实现office转pdf、pdf转图片
  13. Oracle 18c安装操作指导手册
  14. 3.1 使用ZIO测试,写一些简单的程序
  15. 外卖店优先级 第十届蓝桥杯真题 C++
  16. ​包载紫杉醇的tpgs还原性白蛋白纳米粒/GA-HSA 藤黄酸人血清蛋白纳米粒​
  17. linux下网络播放器,月亮播放器:Linux无广告看片神器
  18. 计算机ram数据原理,每日一科普:了解RAM是什么?有何用?
  19. 小米手环7外观曝光 相比小米手环6有大升级
  20. GridDehazeNet

热门文章

  1. dra7xx cpu frequency change
  2. java假期顺延求一个日期n天后的日期(排除节假日及周六周日)
  3. 毕业设计 单片机智能灌溉系统 - 物联网 嵌入式
  4. 红旗高级服务器Linux4.1安装Oracle9204(转)
  5. Django7-4.模板系统常用知识点(4)
  6. python中判断字母大小写和数字字符串
  7. Hashkey邓超:投资数字金融的三大逻辑和三大视角(全文)
  8. 郝健: Linux内存管理学习笔记-第1节课【转】
  9. [Swift]LeetCode61. 旋转链表 | Rotate List
  10. 计算机组装遇到问题,组装电脑硬件遇到问题怎么办 组装电脑硬件问题解决方法【详解】...