2018年一轮省队集训Day2 - 多项式 - 拉格朗日插值 - 容斥原理

T1
题目大意

给N*M的网格图染色,问有多少种方案,使得任意一个h*w的矩阵中,黑色格子数量恒等。 N,M109,h,w4 N , M ≤ 10 9 , 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 = 1 4 a [ x ] [ i ] − a [ x + 4 ] [ i ] = 0 ,列同理
即可
对x,y%4意义下分类考虑
那么注意到一个性质,对于 x,y4 x , 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 ] . . . , o r   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 ( 2 h w ( h + w ) 2 )

T2
题目大意

给你n种物品,每种物品无限个,记f(m)表示恰好装满m的方案数,求 Ri=Lf(i),n10,ai105,R1017 ∑ i = L R f ( i ) , n ≤ 10 , ∏ a i ≤ 10 5 , R ≤ 10 17

题解

首先有这样一个结论,令 L=LCM(Ai) L = L C M ( A i ) ,那么对于相同的k,有 f(iL+k) f ( i L + k ) 是关于i的N次多项式,然后要求这个东西的前缀和,那么就是一个N+1次的多项式,暴力之后拉格朗日差值即可。

T3
题目大意

构造一个DAG,点数不超过50,边数不超过100,使得合法的拓扑序恰好有x个,x不超过32767。

题解

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值