
题解
YY_belief
这个作者很懒,什么都没留下…
展开
-
组合数C(M,N)
组合数 求一个数的组合数C(M,N) C(M,N)=12… * m/n * (n-1) * (n-2) *… *(n-m+1) 意思就是C(3,10)=1 * 2 * 3/8 *9 *10 当M和N很大的时候就会爆精度,这个时候需要用到去除质因子来得到正确的答案。 先将分母里面的质因子数量记住,然后拿分子里面质因子数量来抵消,最后把剩下的乘起来就行了。 #include<stdio.h>...原创 2020-03-16 22:45:54 · 645 阅读 · 0 评论 -
逆元
逆元什么是逆元:逆元有什么用:逆元定理:逆元的求解方法:法一:费马小定理法二:扩展欧几里德(又叫辗转相除法在这里作逆运算)法三:扩展欧几里德(递归写法) 什么是逆元: 比如a/b%m=c; d是b的逆元 则a*d%m=c,且bd=1; 逆元有什么用: 当你求解公式(a/b)%c的时候,b的值过大,可能会爆精度,因为除法不能分子和分母同取模一个数除出来的结果还是一样的,所以这个时候你就需要用到逆元,...原创 2020-03-13 22:27:20 · 531 阅读 · 0 评论 -
cf divD题题解
cf-div2D题 题意:给你m个数,让其在一个长度为n的数组中排列,但是要保证先是单调递增,然后是单调递减,并且有两个元素是一样的。 思路是推导出一个通项公式:(n-2)*C(n-1,m)*2n-3=ans C(n-1,m)的意思是从m个数里面拿出n-1个数出来,因为有俩个是一样的,所以只需要n-1即可 n-2的意思是从n-1个数中能分出另一个和本身相同的数的个数,为什么是n-2呢,因为总个数...原创 2020-03-13 17:53:35 · 438 阅读 · 0 评论 -
最大子段和-动态规划
最大子段和-动态规划写法题目:法一: 题目: 给定长度为n的整数序列,a[1…n], 求[1,n]某个子区间[i , j]使得a[i]+…+a[j]和最大.或者求出最大的这个和.例如(-2,11,-4,13,-5,2)的最大子段和为20,所求子区间为[2,4]。 有俩种dp做法: 法一: 用数组dp,这里可以假设dp[i]是最大字段和的最后一个,那么他肯定是前面的dp[i-1]和此位置的a[i]结...原创 2020-03-10 21:57:42 · 995 阅读 · 0 评论 -
七星瓢虫
七星瓢虫: 今天搞了一个七星瓢虫的题:(这是个并查集的题) 题目: 有七星瓢虫n个,可以俩俩交配m组( 0<n<=2000, 0<m<=1000000) 如果俩个交配为同性则输出:Suspicious bugs found! 没有则输出:No suspicious bugs found! 输入: 第一行输入t ,表示t个用例 接下来第一行输入n m后m行输入a b,代表a和...原创 2020-03-09 15:53:26 · 463 阅读 · 0 评论