摘要:
我很久以前就做过这道题,但是当时没有想出来于是扔掉了(在状压dp那块),今天被学长重新拿出来再讲一次,终于有了点思路。 先讲一下暴力思路,说是暴力也很难想了。设dp[i][j][s]为以树上编号为i的点为子树,i对应原图的j的,s是i的子树中包含对应原图中的点状态为s的方案数。 那么写一下式子。 $ 阅读全文
摘要:
考虑大力容斥。 全集是: C3nm 需要减去三点共线的情况。 那么以原点为一个端点,n2 枚举另外一个端点(x,y),得到一条线段,每条线段上有gcd(x,y)个点,那么这条的贡献就是gcd(x,y)-1(去除(x,y))可以平移得到另外(n-x)*(m-y)条线段。 容斥 阅读全文
摘要:
今天学长说了个结论是 num=gcd(x1−x2,y1−y2) 现在我试着证明一下。 证明: 令 x=x1−x2,y=y1−y2 令 d=gcd(x,y) x=pd,y=qd 令直线上某一点为(a,h) 由相似三角形可得: $ \fra 阅读全文
摘要:
这道题乍一看挺水的,直接Ploya就可以了,可是再看看数据范围:n<=1e9 那就是有1e9种置换,这不歇比了。 于是考虑式子的优化。 首先证明,转i次的置换的每个循环结大小是 gcd(i,n) 证明: 首先设第x个元素的位置是p,置换种类是i,循环k次后回到原点,k也就是循环结个数 阅读全文