随笔分类 -  组合数学--常用公式与定理

摘要:链接:https://ac.nowcoder.com/acm/contest/881/B 题意:给出n,和数组a[n],求特定表达式取模后的值。 思路:用到列项相消: 那么,,然后就变成了求和问题,利用费马小定理求逆元可计算得到结果。 AC代码: 阅读全文
posted @ 2019-07-19 14:37 Frank__Chen 阅读(257) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/879/A 题意:有n个城市,编号1~n,k天,第一天位于城市1,要求最后一天在城市1,且相邻两天不在同一个城市,求方案数。 思路:设k天后在城市1的方案数为f(k),前k-1天每天有n-1种选择,最后一天必须去城市1 阅读全文
posted @ 2019-05-12 14:11 Frank__Chen 阅读(392) 评论(0) 推荐(1)
摘要:题目链接:https://vjudge.net/problem/POJ-2773 题意:给定m,k,求与m互质的第k个数。 思路一:利用gcd(a,b)=gcd(b*t+a,b)知道,与m互质的数是以m为周期分布的,这样可以先枚举小于m的所有与m互质的数,利用周期就可以得到第k小的数了,这样复杂度为 阅读全文
posted @ 2019-05-08 15:34 Frank__Chen 阅读(487) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=1019 题意:对于序列1121231234...,求第i个数字(i<=2147483647)。 思路:记第一组为1,第二组为12,第三组为123,打表预处理计算除第2147482647位在第31268组,然后预处理计算前31268组的位 阅读全文
posted @ 2019-04-10 22:17 Frank__Chen 阅读(620) 评论(0) 推荐(0)
摘要:求组合数有O(n^2)和 O(n)的算法,但是当n十分大的的时候,就要用到卢卡斯定理了。 比如求C(n, m) % p , n<=1e18,m<=1e18,p<=1e5。利用lucas定理时p一定要<=1e5,且p为素数。 Lucas定理:C(n, m) % p = C(n / p, m / p) 阅读全文
posted @ 2019-04-07 16:47 Frank__Chen 阅读(325) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/548/F 题意:简化题意之后就是求[1,n]中不能被[2,m]中的数整除的数的个数。 思路:简单容斥题,求[1,n]中不能被[2,m]中的数整除的数的个数,可以通过求能够被整除的数。 首先,[2,m]中的合数肯定能由 阅读全文
posted @ 2019-04-07 11:34 Frank__Chen 阅读(159) 评论(0) 推荐(0)
摘要:昨天做了一个求[1,n]里能被[2,m]中的数整除的个数,就去搜容斥原理,找到一篇讲得特别好的博客,就转载了其中一部分过来。 转载:https://blog.csdn.net/m0_37286282/article/details/78869512 关于集合的原理公式 上述描述的公式形式可以表示如下 阅读全文
posted @ 2019-04-07 10:47 Frank__Chen 阅读(2143) 评论(0) 推荐(0)