题意:平面上有n个点,所有点的x坐标均不同,两点之间的花费为两点之间的欧几里得距离,从最左面出发,到最右面返回 所有点除最左和最右路过两次,其他的路过一次,输出最小花费 分析:按照题意无法定义路过点的状态,把路径理解为两个人同时从最左出发,到达最右点,中间的点只能一个人走且只能一次,这样就可以用(i
分类:
其他好文 时间:
2016-02-28 16:40:15
阅读次数:
141
序 求最大公约数的最常用的算法是欧几里得算法,也称为辗转相除法。问题定义为求i和j的最大公约数gcd(i,j),其中i和j是整数,不妨设i>j。算法可以递归的表示:1. 如果j能整除i,那么gcd(i,j)=j; 2. j不能整除i,令r=i%j,那么gcd(i,j)=gcd(j,r)。 C实现 i
分类:
其他好文 时间:
2016-02-25 15:16:03
阅读次数:
128
扩展欧几里得 题意:给你一个循环,有初始条件,终止条件,和变量的变化条件,问程序能执行多少次。 example: for(i=A;i!=B;i+=c){statement;}问题是保证所有的计算都在2的k次方以内,也就是说,要模以2^k 这个问题可以抽象成一个函数:A+C*x-y*2^k=B; 把这
分类:
其他好文 时间:
2016-02-23 13:03:18
阅读次数:
149
欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。 基本算法:设a=qb+r。当中a,b。q,r都是整数。则gcd(a,b)=gcd(b,r)。即gcd(a,b)=gcd(b,a%b)。 递归代码: __int64 gcd(__int64 a,__int64 b) { return b
分类:
其他好文 时间:
2016-02-21 22:45:30
阅读次数:
249
KNN最邻近规则,主要应用领域是对未知事物的识别,即判断未知事物属于哪一类,判断思想是,基于欧几里得定理,判断未知事物的特征和哪一类已知事物的的特征最接近; K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如
分类:
其他好文 时间:
2016-02-05 18:55:34
阅读次数:
169
这题大概是,整数模9973乘法群?然后存在乘法逆元。 于是题目要求$A \div B \pmod {9973} $其实就相当于求$A \times B^{-1}\pmod {9973} $。 只要求出B的逆元就OK了。 计算模n下的乘法逆元可以用用扩展欧几里得算法求解,即解下面的线性同余方程: $$
分类:
其他好文 时间:
2016-02-04 11:33:24
阅读次数:
136
辗转相除法(又称欧几里得算法)是求最大公因数的算法 要求a,b的最大公约数(a>b),我们可以递归地求b,a%b的最大公约数,直到其中一个数变成0,这时另一个数就是a,b的最大公约数。 C++实现: int gcd(int a,int b){ retuen b?gcd(b,a%b):a; } 或:
分类:
其他好文 时间:
2016-02-03 20:54:38
阅读次数:
245
无符号k位数溢出就相当于mod 2k,然后设循环x次A等于B,就可以列出方程: $$ Cx+A \equiv B \pmod {2^k} $$ $$ Cx \equiv B-A \pmod {2^k} $$ 最后就用扩展欧几里得算法求出这个线性同余方程的最小非负整数解。 1 #include<cst
分类:
其他好文 时间:
2016-02-03 20:01:31
阅读次数:
146
http://poj.org/problem?id=2115 题解:一个变量从A开始加到B,每次加C并mod2^k,问加多少次。转化为不定方程:C*x+2^K*Y=B-A //poj2115 #include<cstdio> #include<cstdlib> #include<cstring> #
分类:
其他好文 时间:
2016-02-02 21:35:54
阅读次数:
219
http://acm.hdu.edu.cn/showproblem.php?pid=1573 求小于等于N的正整数中有多少个X满足: X mod a0 = b0 X mod a1 = b1 …… X mod ai = bi (0<ai<=10) 输入:第一行为一个正整数T,表示有T组测试数据。每组测
分类:
其他好文 时间:
2016-02-02 21:29:35
阅读次数:
223