题目

Description

众所周知,我们常感受的世界是三维的。

Polycarp突然对四维空间产生了兴趣,他想对四维空间进行一些研究。但是在此之前,他必须先对三维世界了解透彻。

于是Polycarp决定从零维,也就是一个点,开始他的研究。

我们把一个点放在三维空间中,Polycarp把这个点视为原点,并确定了三个正方向。

他可以把这个点往三个方向之一拉伸一个单位,那么这个点就变为了一维的一条长度为一的线段。

然后如果他把这条线段往另一方向拉伸一个单位,那么这条线就变为了二维的一个矩形。

如果继续拉伸可能就会进入三维世界,也就是变为直四棱柱。

Polycarp认为矩形、线段甚至点都可以看作某一维或某几维为丰的直四棱柱。

现在Polycarp想演示把一个点一步一步拉伸为边长为n的正六面体的过程,

但他缺失了m种形态的直四棱柱模具(Polycarp拥有其他的所有直四棱柱模具),他想知道共有多少种演示方案。

Polycarp的演示过程需要每拉伸一个单位时对应形态的直四棱柱。因为方案数很大,所以输出答案对10^9+7的结果。

Input

从文件poly.in中读入数据。

第一行两个整数n;m,分别表示直四棱柱的边长和他缺失的模具数量。

接下来m行,第i行三个整数x; y; z,表示第i个缺失模具的长、宽、高。

2 3

1 0 1

1 1 1

0 2 0

Output

输出到文件poly.out中。一个整数,即答案。

36

Data Constraint

题目大意

求从 (0,0,0) 到 (n,n,n) 不经过某些点的方案数

题解

20 分

暴力 DFS ,不经过一些点,搜到终点 +1

复杂度:\(O(?)\)

40 分

设 F[i][j][k] 为从 (0,0,0) 到 (i,j,k) 的方案数,若不能走就标记一下,初始 F[0][0][0]=1

复杂度:\(O(n^3)\)

60 分

若 m=0 求的是从 (0,0,0) 到 (n,n,n) 的方案数

由于一共要走 3n 步,方案数为\(C^n_{3n}\bullet C^n_{2n}\bullet C^n_n=\dfrac{(3n)!(2n)!}{n!(2n)!n!n!}=\dfrac{(3n)!}{n!n!n!}\)

100 分

我们设 F[i] 为从 (0,0,0) 到第 i 个禁止点不经过其他禁止点的方案数,设第 i 个禁止点为 \((x_i,y_i,z_i)\)

同 60 分做法,若经过禁止点的方案数为 \(\dfrac{(x_i+y_i+z_i)!}{x_i!y_i!z_i!}\) ,可先算出再减去经过禁止点的方案

一个经过禁止点的方案肯定有其第一个经过的禁止点。设这个禁止点为 j 。

那么 j 之前肯定不能经过其他禁止点,只有无论怎么走都行。可得

\[F_i=\dfrac{(x_i+y_i+z_i)!}{x_i!y_i!z_i!}-\sum_{x_j\le x_i,y_j\le y_i,z_j\le z_i}\dfrac{(x_i-x_j+y_i-y_j+z_i-z_j)!}{(x_i-x_j)!(y_i-y_j)!(z_i-z_j)!}
\]

复杂度:\(O(m^2)\)

注意
  1. 为了无后效性,请先排序(三关键字)
  2. 如何输出答案:加一个禁止点 (n,n,n) ,最后输出 F[m] ,即不经过所有障碍到 (n,n,n) 的方案
  3. 需要逆元,否则会炸 (OI-WIKI)

JZOJ5384. 【NOIP2017提高A组模拟9.23】四维世界的更多相关文章

  1. JZOJ 100029. 【NOIP2017提高A组模拟7.8】陪审团

    100029. [NOIP2017提高A组模拟7.8]陪审团 Time Limits: 1000 ms  Memory Limits: 131072 KB  Detailed Limits   Got ...

  2. JZOJ 4732. 【NOIP2016提高A组模拟8.23】函数

    4732. [NOIP2016提高A组模拟8.23]函数 (Standard IO) Time Limits: 1500 ms  Memory Limits: 262144 KB  Detailed ...

  3. JZOJ 5328. 【NOIP2017提高A组模拟8.22】世界线

    5328. [NOIP2017提高A组模拟8.22]世界线 (File IO): input:worldline.in output:worldline.out Time Limits: 1500 m ...

  4. JZOJ 5329. 【NOIP2017提高A组模拟8.22】时间机器

    5329. [NOIP2017提高A组模拟8.22]时间机器 (File IO): input:machine.in output:machine.out Time Limits: 2000 ms M ...

  5. JZOJ 5307. 【NOIP2017提高A组模拟8.18】偷窃 (Standard IO)

    5307. [NOIP2017提高A组模拟8.18]偷窃 (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB Description ...

  6. JZOJ 5286. 【NOIP2017提高A组模拟8.16】花花的森林 (Standard IO)

    5286. [NOIP2017提高A组模拟8.16]花花的森林 (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Descript ...

  7. JZOJ 5305. 【NOIP2017提高A组模拟8.18】C (Standard IO)

    5305. [NOIP2017提高A组模拟8.18]C (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Description ...

  8. 【NOIP2017提高A组模拟9.17】信仰是为了虚无之人

    [NOIP2017提高A组模拟9.17]信仰是为了虚无之人 Description Input Output Sample Input 3 3 0 1 1 7 1 1 6 1 3 2 Sample O ...

  9. 【NOIP2017提高A组模拟9.17】猫

    [NOIP2017提高A组模拟9.17]猫 题目 Description 信息组最近猫成灾了! 隔壁物理组也拿猫没办法. 信息组组长只好去请神刀手来帮他们消灭猫.信息组现在共有n 只猫(n 为正整数) ...

随机推荐

  1. 微信小程序人脸识别

    参考:https://cloud.tencent.com/document/product/1007/31071

  2. P7683 [COCI2008-2009#5] KRUSKA

    洛谷上这道题的第一篇题解.上海加油. 题目大意 Aladdin 已经厌倦了宫殿里的生活.他有一份稳定的工作,他的妻子 Jasmine 和孩子们都在路上,生活变得单调.在这一切的驱使下,他决定在安顿下来 ...

  3. numpy---(精简)

    numpy get started 导入numpy库, 并查看版本 import numpy as np np.__version__ '1.14.3' # pyplot显示画图, 数据分析与可视化 ...

  4. SpringBoot注解自动扫描-底层实现

    分析上文Spring Boot快速入门 @SpringBootApplication public class HelloWorldApplication { public static void m ...

  5. 使用 LOAD DATA LOCAL INFILE,sysbench 导数速度提升30%

    1. LOAD DATA INFILE 为什么比 INSERT 快? 2. sysbench 压测 MySQL 的四个标准步骤. 3. 怎么让 sysbench 支持 LOAD DATA LOCAL ...

  6. linux mysql导入导出sql文件

    导出 导出单独数据库:mysqldump -uroot -p 数据库名 > 数据库名.sql 例:mysqldump -uroot -p database1 > database1.sql ...

  7. JVM诊断及工具笔记(4) 使用visualvm分析JVM堆内存泄漏

    在这里感谢最近一直阅读我文章的小伙伴,如果觉得文章对你有用,可以帮忙关注转载,需要的时候可以及时找到文章. 背景 今年Q3季度我们在推广业务方使用Iceberg,当时为了让不同业务线的用户可以使用自己 ...

  8. Python Pandas库 初步使用

    用pandas+numpy读取UCI iris数据集中鸢尾花的萼片.花瓣长度数据,进行数据清理,去重,排序,并求出和.累积和.均值.标准差.方差.最大值.最小值

  9. 2021.12.07 [TJOI2013]最长上升子序列(Treap+DP)

    2021.12.07 [TJOI2013]最长上升子序列(Treap+DP) https://www.luogu.com.cn/problem/P4309 题意: 给定一个序列,初始为空.现在我们将1 ...

  10. python基础练习题(题目 矩阵对角线之和)

    day25 --------------------------------------------------------------- 实例038:矩阵对角线之和 题目 求一个3*3矩阵主对角线元 ...