文章分类 -  数学

摘要:神级思维!!!discuss中://定义两个三元组I(xi,yi,zi)和J(xj,yj,zj),(可以看做是空间中的点)//他们的距离为D(I,J)=max{xi-xj,yi-yj,zi-zj}-min{xi-xj,yi-yj,zi-zj},//给定n个三元组(n<=200000),求任意两个三元组的差的和//抽化出来的模型是 max(a,b,c)-min(a,b,c),这个东西吧他放在数轴上 a,b,c//我们要求最大和最小的差就是这三个点构成的线段的距离,那么我们这里再变通下 是不是端点到中间那个点的距离//其实画出这个图的时候,就可以看到这个距离为(|a-b|+|b-c|+|c- 阅读全文
posted @ 2011-08-03 11:03 KOKO's 阅读(217) 评论(0) 推荐(0)
摘要:自己写个死活都TLE。。。。看的别人的才过。任意一个数都可以分解为n=p1^e1*p2^e2*...*pn^en,,,,其中p1,,p2,,pn为素数,,,,,则n的约数的个数为(e1+1)*(e2+1)*...*(en+1),,,,利用筛法,,我们可以求出1~n中每个数的所有素约数的指数,,,,,C(n,k)=n!/k!/(n-k)!,,,,,,over,,,,//============================================================================// Name : 2992.cpp// Author : // Versio 阅读全文
posted @ 2011-08-03 09:58 KOKO's 阅读(418) 评论(0) 推荐(0)
摘要:用浙大的模版A的第一道二分图最大匹配的模版题//============================================================================// Name : 1469.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//========================================================================= 阅读全文
posted @ 2011-08-02 19:20 KOKO's 阅读(225) 评论(0) 推荐(0)
摘要:好题,好解。//这道题就是求一个分数的2进制小数的循环节长度和起始位置。// 首先,先对该分数 n/m 化简。// n = n / gcd(n, m)// m = m / gcd(n, m)// n = n mod m// 接下来就是需要知道一个分数化成k进制小数的方法:// for i = 0 to 需要的位数// n = n * k;// bit[i] = n / m;// n = n mod m;// 可以知道对于某一位的n,设为ni,当到了某一位nj,有ni mod m== nj mod m 时,此时循环节就出现了,长度L = j - i。// 而aj = (ai * 2 ^ L) m 阅读全文
posted @ 2011-07-28 10:25 KOKO's 阅读(856) 评论(0) 推荐(0)
摘要:直接推还真没推出来。。。看了别人讲的好多也没明白,最后看这个讲的还是不错的。题意:N个小孩围成一个圈,老师 顺时针隔 0, 1, 2, 3,。。。个小孩发糖,问每个小孩是否都能领到糖。解法很简单 当N是2^K时输出YES,否则输出NO。printf((N & N - 1) ? "NO\n" : "YES\n");关键这个怎么证明呢。看到Discuss里说和2次剩余有关,但是没有看出来。。。下面给出自己的简易证明。当N是奇数时,拿 7 为例。当增量大于N时,就mod N,对增量没有影响。增量 0 1 2 3 4 5 6 0 1 2 3 4 5 6编 阅读全文
posted @ 2011-07-27 09:10 KOKO's 阅读(239) 评论(0) 推荐(0)
摘要:分类里说的是高斯消元,但我没看出来,就先搜给搜出来了,一会看看别人怎么消的。//============================================================================// Name : 1222.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//========================================================= 阅读全文
posted @ 2011-07-26 15:22 KOKO's 阅读(511) 评论(0) 推荐(0)
摘要:主要就是原根的一些定理:如果n有原根,那么n的原根的数目就是euler(erler(n));由于题中说n为奇素数,故euler(n)就是(n-1),故答案即为euler(n-1);//============================================================================// Name : 1284.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//===== 阅读全文
posted @ 2011-07-26 13:49 KOKO's 阅读(342) 评论(0) 推荐(0)
摘要:快速求1~n这n个数的欧拉函数的应用。。。开始一直TLE。。最后过是因为跑欧拉函数那个函数提前跑一次,如果放在while里就TLE了。。//============================================================================// Name : 2478.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//=========================== 阅读全文
posted @ 2011-07-26 11:13 KOKO's 阅读(211) 评论(0) 推荐(0)
摘要:要求求的是第K个,开始一直迷惑以为是小于n的数中的。。竟然继续往后数。。这样的话互质数是循环出现的,每次k个,k即为小于n的互质数的个数,即这k个数不断加n,还与n互质。//============================================================================// Name : 1284.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//========== 阅读全文
posted @ 2011-07-26 10:44 KOKO's 阅读(271) 评论(0) 推荐(0)
摘要:求单个数的欧拉函数值。//============================================================================// Name : 1284.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//============================================================================#include 阅读全文
posted @ 2011-07-26 09:20 KOKO's 阅读(125) 评论(0) 推荐(0)
摘要:让我蛋疼一下午的约瑟夫环。。//============================================================================// Name : 3517.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//============================================================================#incl 阅读全文
posted @ 2011-07-25 20:08 KOKO's 阅读(129) 评论(0) 推荐(0)
摘要:反素数的一些知识:反素数是<=n的数中质因子数最多的并且最小的。故有一下两个结论:1.反素数必然是从2开始连续的若干个素数的若干幂的积:因为假设2*3*7*9,则一定存在2*3*5*7<2*3*7*9;2.反素数的因子的幂,质因子越小,质因子的幂越大:因为假设2^4*3^6,必小于2^6*3^4,而它们的约数个数相同,都是(4+1)*(6+1);具体看代码,一开始设的50是因为2^50已经大于10^16;//============================================================================// Name : zo 阅读全文
posted @ 2011-07-25 09:40 KOKO's 阅读(337) 评论(0) 推荐(0)
摘要:A的挺费劲的。。。用筛法求某个区间内的素数。思路想通的挺快就是实现的真难。。//============================================================================// Name : 2689.cpp// Author :// Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//========================================================== 阅读全文
posted @ 2011-07-25 00:11 KOKO's 阅读(354) 评论(0) 推荐(0)
摘要:水题一道。//============================================================================// Name : 2909.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//============================================================================#include <i 阅读全文
posted @ 2011-07-24 20:51 KOKO's 阅读(108) 评论(0) 推荐(0)
摘要:小水题一道。//============================================================================// Name : 2262.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//============================================================================#include < 阅读全文
posted @ 2011-07-24 20:40 KOKO's 阅读(261) 评论(0) 推荐(0)
摘要:就是求一个数最大能开多少次方,一开始没注意到有负数的情况。负数要另外处理。//============================================================================// Name : 1730.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//========================================================== 阅读全文
posted @ 2011-07-24 18:53 KOKO's 阅读(182) 评论(0) 推荐(0)
摘要:真恶心,真没想到最后是打表才能过。。。//============================================================================// Name : 2191.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//============================================================================ 阅读全文
posted @ 2011-07-24 18:24 KOKO's 阅读(229) 评论(0) 推荐(0)
摘要:用了一些二分的思想。要不会超时。还要注意一点,问的是非素数的p是否是伪素数//============================================================================// Name : 3641.cpp// Author :// Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//=========================================================== 阅读全文
posted @ 2011-07-24 16:44 KOKO's 阅读(239) 评论(0) 推荐(0)
摘要:比较水的一道题。//============================================================================// Name : 1595.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//============================================================================#include &l 阅读全文
posted @ 2011-07-24 15:56 KOKO's 阅读(327) 评论(0) 推荐(0)
摘要:蛋疼了好长时间,还是早上精神好,理解的快一些。就是求一个序列置换k次后的结果,由于肯定是循环的,我一开始做的是求出每个循环的长度,再求出最小公倍数m,用k%m,即置换k%m次即为最后的答案,但是无情的TLE了。后来才想懂,其实每个元素都属于一个小的循环,假设长度为len[i],只需要让这个元素在它所在的小循环里循环k%len[i]次即可//============================================================================// Name : 1026.cpp// Author : // Version :// Copyrigh 阅读全文
posted @ 2011-07-24 09:07 KOKO's 阅读(565) 评论(0) 推荐(0)