T1
题目大意
给N*M的网格图染色,问有多少种方案,使得任意一个h*w的矩阵中,黑色格子数量恒等。N,M≤109,h,w≤4N,M≤109,h,w≤4
题解
举例来说如果h=w=4,只要满足:
a[x][y]+a[x+4][y+4]=a[x+4][y]+a[x][y+4]a[x][y]+a[x+4][y+4]=a[x+4][y]+a[x][y+4]
∑4i=1a[x][i]−a[x+4][i]=0∑i=14a[x][i]−a[x+4][i]=0,列同理
即可
对x,y%4意义下分类考虑
那么注意到一个性质,对于x,y≤4x,y≤4,必然有:
a[x][y]=a[x+4][y]=a[x+8][y]...,or a[x][y]=a[x][y+4]=a[x][y+8]=...a[x][y]=a[x+4][y]=a[x+8][y]...,or a[x][y]=a[x][y+4]=a[x][y+8]=...
证明是这样的,首先讨论一下,不难发现a[x][y]=a[x+4][y]或者a[x][y]=a[x][y+4]是成立的,同时,如果在某一个方向延伸的时候(例如)从1变成0了,那么(例如是横向)下面两个位置就必须是1和0,并且这个1之前的位置也都是1,那么就可以得到纵向都要是两列1的结论,证完。
于是我们暴力枚举每个数字是向哪里相等即可,这二者独立,组合数即可。
为了避免重复计数,应当容斥,可以子集和变换,也可以不用,复杂度O(2hw(h+w)2)O(2hw(h+w)2)
T2
题目大意
给你n种物品,每种物品无限个,记f(m)表示恰好装满m的方案数,求∑Ri=Lf(i),n≤10,∏ai≤105,R≤1017∑i=LRf(i),n≤10,∏ai≤105,R≤1017
题解
首先有这样一个结论,令L=LCM(Ai)L=LCM(Ai),那么对于相同的k,有f(iL+k)f(iL+k)是关于i的N次多项式,然后要求这个东西的前缀和,那么就是一个N+1次的多项式,暴力之后拉格朗日差值即可。
T3
题目大意
构造一个DAG,点数不超过50,边数不超过100,使得合法的拓扑序恰好有x个,x不超过32767。
题解
略