码迷,mamicode.com
首页 >  
搜索关键字:gcd    ( 4539个结果
【莫比乌斯反演】专题总结
为什么感觉我好像之前学过这玩意- -?莫比乌斯反演莫比乌斯反演就是一个能求gcd为多少的个数有几个的东西- -(反正我只知道这么用)f(x)表示gcd为x的倍数的个数g(x)表示gcd为x的个数莫比乌斯反演的基本形式是f(n) = Σ (g(d)) d | ng(n) = Σ (g(d) * m.....
分类:其他好文   时间:2014-05-23 03:13:27    阅读次数:240
UVA 12075 - Counting Triangles(容斥原理计数)
题目链接:12075 - Counting Triangles 题意:求n * m矩形内,最多能组成几个三角形 这题和UVA 1393类似,把总情况扣去三点共线情况,那么问题转化为求三点共线的情况,对于两点,求他们的gcd - 1,得到的就是他们之间有多少个点,那么情况数就可以求了,然后还是利用容斥原理去计数,然后累加出答案 代码: #include #include #include...
分类:其他好文   时间:2014-05-22 10:35:15    阅读次数:229
欧几里得算法的时间复杂度
欧几里得算法, 又称辗转相除法, 用于求两个自然数的最大公约数.算法的思想很简单, 基于下面的数论等式gcd(a, b) = gcd(b, a mod b)其中gcd(a, b)表示a和b的最大公约数,mod是模运算, 即求a除以b的余数.算法如下:输入: 两个整数a, b输出: a和b的最大公约数...
分类:其他好文   时间:2014-05-22 05:42:34    阅读次数:232
iOS多线程编程技术之NSThread、Cocoa NSOperation、GCD
简介iOS有三种多线程编程的技术,分别是:(一)NSThread(二)Cocoa NSOperation(三)GCD(全称:Grand Central Dispatch)这三种编程方式从上到下,抽象度层次是从低到高的,抽象度越高的使用越简单,也是Apple最推荐使用的。三种方式的优缺点介绍:1)NS...
分类:移动开发   时间:2014-05-22 01:57:09    阅读次数:494
Hdu 4497
题目链接已知 gcd(x, y, z) = G, lcm(x, y, z) = L, 求有多少种组合(x, y, z)可以满足条件。G, L都在32位int范围内。思路: 素数分解 + 容斥L : p1^t1 * p2^t2 ... * pi^tiG: q1^s1 * q2^s2... * qi^s...
分类:其他好文   时间:2014-05-21 17:57:31    阅读次数:266
GCD dispatch_semaphore
当我们在处理一系列线程的时候,当数量达到一定量,在以前我们可能会选择使用NSOperationQueue来处理并发控制,但如何在GCD中快速的控制并发呢?答案就是dispatch_semaphore.   信号量是一个整形值并且具有一个初始计数值,并且支持两个操作:信号通知和等待。当一个信号量被信号通知,其计数会被增加。当一个线程在一个信号量上等待时,线程会被阻塞(如果有必要的话),直至计数器大...
分类:其他好文   时间:2014-05-21 09:51:27    阅读次数:258
编程之美之2.7 最大公约数问题
问题: 求两个数的最大公约数 解法一: 欧几里得辗转相除法: f(x,y) = GCD(x,y), 取k = x / y, b = x % y,则:x = k*y + b; 如果一个数能整除x,y,则它也能整除b,y; 而且能整除b,y的数必能整除x,y,即x,y和b,y的公约数是相同的,其最大公约数也是相同的,即f(x,y) = f(y ,x % y) (x>=y>0)...
分类:其他好文   时间:2014-05-21 09:28:26    阅读次数:275
poj2115(扩展欧几里得运用)
题意:求for(int i=a;i!=b;i+=c,i%=(1 解法:即求解C*x-(1C*x+K*y=b-a;如果g=gcd(C,K)不能被b-a整除,则说明无解。          用exgcd()求出一组C/g*x+K/g*y=1的解,然后两边乘上(b-a)/g将求出的x取最小正数输出。 代码:/*************************************...
分类:其他好文   时间:2014-05-21 07:09:42    阅读次数:226
HRBUST 1328 相等的最小公倍数
SOl:将原题改为枚举N的每一对因子,计算其是否互素即可。 #include #include #include using namespace std; inline int gcd(int a,int b) { return b==0?a:gcd(b,a%b); } int main() { int n,T,i,j; scanf("%d",&T); while(T...
分类:其他好文   时间:2014-05-21 07:07:00    阅读次数:273
关于GCD学习,创建及使用多线程的几种方法
近期刚刚学习了一种多线程技术,现结合自己的理解将其罗列出来,希望能够与大家交流一下,多线程是一种能够节省程序运算时间的方法,大大的提高了程序的运算效率,那么首先我们来说一下进程和线程概念: 一个程序包含一个以上的进程,而一个进程又可以包含一个以上的线程,每一个进程都有自己独立的内存空间,相应...
分类:编程语言   时间:2014-05-19 20:00:50    阅读次数:289
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!