组合数学的问题。
这个公式还是蛮好推的,但是描述起来困难。设关闭着的灯有n个,没有限制的时候共有n!种方法,但是每个区域的灯都有一定的限制,所以除以每个区域的灯的阶乘。最后再把每个区域的点法乘上去。
计算的时候还有个问题,有乘有除,我采取了先约分的办法,然后再计算各个因子的乘积。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=1e3+9,mod=1e9+7;
int a[maxn],d,c[maxn];
int n,m;
int gcd(int a,int b)
{
}
void work(int tmp)
{
}
int main()
{
}