#P16240. [IIOT2026]Little Square小正方形

[IIOT2026]Little Square小正方形

题目描述

给定一个边长为 NN 的正方形棋盘,以及 NN 个 L 形木块。

每个木块的两条“臂”长度相同,且所有木块的边长分别为

1,2,,N.1,2,\ldots,N.

边长为 LL 的 L 形木块占据 2L12L-1 个格子。所有木块恰好可以覆盖整个 N×NN\times N 棋盘。

棋盘行、列均从 11NN 编号,左上角为 (1,1)(1,1)

一个边长为 6 的完整棋盘 现在给出 PP 条限制。每条限制为 (L,X,Y)(L,X,Y),表示边长为 LL 的木块的拐角必须放在格子 (X,Y)(X,Y)。木块朝向不限,只要拐角位置正确即可。

请计算满足所有限制的完整铺法数量,答案对 109+710^9+7 取模。

输入格式

第一行包含整数 TT,表示游戏数量。

每个游戏包含:

  1. 一行整数 NN
  2. 一行整数 PP
  3. 接下来 PP 行,每行包含 L,X,YL,X,Y

输出格式

对每个游戏输出一行,表示合法铺法数量模 109+710^9+7

数据范围

  • 1T10001\le T\le1000
  • 1N2000001\le N\le200000
  • 0Pmin(100000,N)0\le P\le\min(100000,N)
  • 1L,X,YN1\le L,X,Y\le N
  • 同一种边长的木块最多出现一条限制;
  • 保证至少存在一种合法铺法;
  • 所有测试用例的 PP 之和不超过 100000100000

子任务

子任务 分值 限制
1 0 样例
2 6 P=0P=0
3 9 N8N\le8
4 16 P=1,L=1,X=1P=1,L=1,X=1
5 23 P=1,L=1P=1,L=1
6 17 P=1P=1
7 29 无额外限制

样例一

输入

3
6
2
1 6 5
4 3 2
2
0
3
1
2 2 2

输出

2
4
4

第一局有两种铺法:

第三局有四种铺法:

样例二

输入

1
40
1
7 20 20

输出

202092513