数论
deepquiet
这个作者很懒,什么都没留下…
展开
-
uva11121 Base -2
题意:将输入的十进制数转化为-2进制数思路:取余的函数定义 a%b = a - (a/b)*b,那么可以得到取余-2余数当a为负数是为-1,0;a为正数时为1,0由于不可取-1,所以将-1变为1,例如:5%-2 = 5 - 2*-2=-1, 如果b+1的3的话,就变为5 - 3*-2 = 1可知,如果将-1转为1商要加上1截取一个博主的总结 while(原创 2016-02-28 15:18:43 · 277 阅读 · 0 评论 -
Carmichael Numbers uva10006
题意:判断一个数是不是Carmichael数1.此数是合数2.次数i^n%n==i思路:首先用筛选法列出素数与非素数,然后用快速取幂法判断i^n%n的值代码:#include#include#includeusing namespace std;const int maxn = 65005;long prime[maxn];long num;int fla原创 2016-02-28 19:00:22 · 281 阅读 · 0 评论 -
Send a Table uva10820
题意:求区间[1-n]的所有互质的对的对数,其中(2,3)与(3,2)记为两对思路:筛法求救欧拉函数求出y以前与其互斥的x,用p记录对于求n以前与其互斥的数的个数,有函数n/i*(i-1)/j(j-1)...其中i, j为组成n的质因子代码:#include#include#includeconst int maxn = 50000;int p[maxn原创 2016-02-28 19:09:25 · 282 阅读 · 0 评论 -
UVa 10717 - Mint
题意:给出n个硬币的厚度以及t张桌子的高度,求硬币四种组合的最大=标准高度(每个桌腿一种硬币,并且高度一致)思路:由于桌腿高度一致,则必须求出用的四种硬币的公倍数首先枚举取得硬币的所有了能,用四层各代表一个硬币,由于底层一定小于上一层,所以不会重然后最大=标准也是这个值如果不同,则最小>=标准就是这个值+公倍数代码:#include#define ll lon原创 2016-02-28 19:18:49 · 261 阅读 · 0 评论 -
Jugs uva571
题意:给你a杯子的容量和b被子的容量,以及b杯子的目标剩余量n,求如何实现思路:两个杯子容量互斥,则ca%cb(ca *2)% cb(ca * 3) % cb.....(ca*cb - 1) % cb余数一定存在且余数在1 - cb-1也就是说只要不停从a倒向b在b杯就一定会出现1-cb-1的情况那么只要a里有东西就倒向b,没有就加,b只要满了就原创 2016-02-28 19:29:28 · 282 阅读 · 0 评论 -
uva10791 Minimum Sum LCM
题意:给出n, 求以n为最小公倍数的数集(至少两个数)的最小和思路:从1-sqrt开始枚举n的因子,重复除去一个数直到无法整除.重复除去的原因在于,公倍数由可整除的因子得到,自然是需要将因子用完才考虑下一个因子(因为集合里的数要没有公约数)这样的到的为什么是最小的呢:4和9的公倍数是3612和18的公倍数是36那么4,9是没有公约数的,12,18有公约数,所以很明显的,原创 2016-02-28 15:05:40 · 243 阅读 · 0 评论 -
uva 128 Software CRC
题意:输入一串256种字符的字符串(即256进制),求增加两位,使得这个串%34943的值为0思路;首先将串转化为256进制并且取余,然后前进两位,得到m+n%34943为0,也就是m=-n为了使得到的数为整数,所以取34943-n,最后还要%一次保证不大与34943(a+b)%m = (a%m+b%m)%m代码:#include#includeusing name原创 2016-02-28 19:42:38 · 440 阅读 · 0 评论