依旧是递归; 求最大公约数, 有一个常用的办法, 叫欧几里得算法(也就是辗转相除法); 欧几里得算法(简称gcd), gcd(a,b)=gcd(b,a mod b); 就是a和b的最大公约数=b和a mod b的最大公约数; 直到a mod b==0的时候, b就是最大公约数。 坚持打卡O(∩_∩) ...
分类:
其他好文 时间:
2019-09-05 00:49:23
阅读次数:
76
C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生 ...
分类:
其他好文 时间:
2019-09-04 13:42:42
阅读次数:
74
A j打成i然后100 0. 我们先考虑把第一个操作并到第二个操作里面。 显然把某二进制位取反等于异或上$2^i$。 去个重应该可以降一点复杂度。最多38个元素。 我们现在把要做的变成了求使用一个数组中的元素$\{a_1,\cdots,a_n\}$相互异或成$p=s\oplus t$的最短步数。 我 ...
分类:
其他好文 时间:
2019-09-04 00:08:35
阅读次数:
74
习题1 1.1. 用于计算gcd(m,n)的欧几里得算法 1.1.1. 算法描述 辗转相除法,又名欧几里得算法(Euclidean algorithm),是求最大公约数(greater common divisor)的一种,通常做法是:用较小的数去除较大的数,用第二余数再去除第一余数,最终我们可以得 ...
分类:
编程语言 时间:
2019-09-03 09:54:40
阅读次数:
121
1.创建信号量,创建的初始值决定线程并发数 dispatch_semaphore_t semaphore = dispatch_semaphore_create(2); 2.等待信号 dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); ...
分类:
其他好文 时间:
2019-09-02 17:04:40
阅读次数:
115
1.dispatch_group_async、dispatch_group_t与dispatch_group_notify 再配合dispatch_group_enter(group)和dispatch_group_leave(group)两个函数一起来使用,这样才能实现我们想要的最终效果。 2.d ...
分类:
其他好文 时间:
2019-09-02 16:58:42
阅读次数:
102
蒟蒻以欧拉心算为例子,浅谈一下如何求一些较复杂的积性函数 欧拉心算: $$\sum_{i=1}^n\sum_{j=1}^n\phi(gcd(i,j))$$ 与之前的一样: $$\sum_{d=1}^n\phi(d)\sum_{i=1}^{[n/d]}\sum_{j=1}^{[n/d]}[gcd(i, ...
分类:
其他好文 时间:
2019-09-02 12:12:44
阅读次数:
91
函数使用递归。 基本情况是当y等于0.在这种情况下,返回x。 否则,返回y的GCD和除法x / y的余数。 打开node命令行调试结果如下 > const gcd = (...arr) => { ... const _gcd = (x, y) => (!y ? x : gcd(y, x % y)); ...
分类:
编程语言 时间:
2019-09-01 21:53:56
阅读次数:
120
OI中的那些实用的小trick 在OI中,我们时常会用到一些小技巧,无论是代码方面还是数学方面抑或是卡常,都有很多不错的小技巧。 鄙人不才,往往没办法想出来,于是就有了这篇汇总帖~ 如有疏漏,还请dalao指教! 1. 结论:$gcd(F[n],F[m])=F[gcd(n,m)]$,其中F为斐波那契 ...
分类:
其他好文 时间:
2019-08-31 19:43:12
阅读次数:
100
题意: 给出$M$和$a数组$,询问每一个$d\in[1,M]$,有多少组数组满足:正好修改$k$个$a$数组里的数使得和原来不同,并且要$\leq M$,并且$gcd(a_1,a_2,\dots,a_n)=d$。 思路: 对于每一个$d$,即求$f(d)$:修改$k$个后$gcd(a_1,a_2, ...
分类:
其他好文 时间:
2019-08-31 16:57:59
阅读次数:
70