随笔分类 -  数论

摘要:TheTriangleDivisionoftheConvexPolygon题意:求 n 凸多边形可以有多少种方法分解成不相交的三角形,最后值模 m。思路:卡特兰数的例子,只是模 m 让人头疼,因为 m 不一定是素数,所以不一定存在逆元。 解法:式子为f(n) = ( C( 2*(n-2), (... 阅读全文
posted @ 2014-12-01 11:29 妮king狼 阅读(299) 评论(0) 推荐(0)
摘要:hdu2608 0 or 1题意:给你一个数N(N 2 #include 3 #include 4 using namespace std; 5 6 int main() 7 { 8 int t, n; 9 scanf("%d", &t);10 while(t--) {11 scanf("%d", &n);12 printf("%d\n",((int)sqrt(n*1.0)+(int)sqrt(n/2.0))&1);13 }14 return 0;15 } 阅读全文
posted @ 2014-03-31 20:00 妮king狼 阅读(201) 评论(0) 推荐(0)
摘要:lightoj 1215 Finding LCM链接:http://www.lightoj.com/volume_showproblem.php?problem=1215题意:已知 a, b, l和 lcm(a, b, c) = l ,求最小的 c 的值。思路:先找 l 的素因子并判断此因子是否为 a, b 的素因子,如果是,则判断他们各自的欧拉值的大小。因为 c 最大可能等于 l 的值,所以刚开始先把l 的值赋给 c 。 当 l 中的某个素因子的欧拉值(lr1)大于 a,b 中相同的素因子的欧拉值(ar1, br1)时,c中肯定含有次素因子并且欧拉值(cr1 >= lr1),然而 c 阅读全文
posted @ 2013-08-02 20:32 妮king狼 阅读(479) 评论(0) 推荐(0)
摘要:uva 11424 GCD - Extreme (I)题意:思路:(见http://www.cnblogs.com/Duahanlang/p/3184994.html)差别在于数据规模和时间,其他一下,同样的思路,同样的做法代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 typedef long long LL;10 const int N = 200005;11 int e[N];12 LL tag[N];13 14 void eul... 阅读全文
posted @ 2013-08-02 11:32 妮king狼 阅读(334) 评论(0) 推荐(0)
摘要:Leading and Trailinglightoj 链接:http://lightoj.com/volume_showproblem.php?problem=1282uva 链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1970题意:给定 n, k ,求 nk 的前3位和后三位的值。思路:1、前 3 位:把 nk 转化为 a.bc * 10m,两边取 10 的对数得到 k * lg(n) = m + lg(a.bc) 阅读全文
posted @ 2013-07-29 17:50 妮king狼 阅读(449) 评论(0) 推荐(0)
摘要:lightoj 1341 Aladdin and the Flying Carpet链接:http://lightoj.com/volume_showproblem.php?problem=1341题意:给定整数 a, b ,求 区间[b, a] 内的 a 的约数对的个数,a 的约数对(比如[2, 3] 与 [3, 2] 是同一对),也就是说前因子要小于后因子。思路:我的思路比较直接,就是求a 的约数的个数(用欧拉函数),除以 2 就得到约数对数, 然后暴力求解区间 [1, b]内的 a 的约数。最后两数相减得到结果。代码: 1 #include 2 #include 3 #include.. 阅读全文
posted @ 2013-07-29 11:07 妮king狼 阅读(609) 评论(0) 推荐(0)
摘要:素数的求解是数论题目中频繁遇到的问题,下面介绍几种求 n 以内的素数的算法全局定义:1 const int n = ?; //n范围2 const int ma = ?; //素数个数3 bool nu[n]; //标记数组4 int phi[ma]; //存素数5 1、较为高效的筛法 思想:从 2 开始,即标记数组为0(或为1),当标记数组为 0(或1) 时,该数为素数,把素数的倍数筛掉。此算法缺陷在于会重复筛选有不同素数因子的合数(比如说6,被2筛一次,又被3筛一次)代码: 1 void prim... 阅读全文
posted @ 2013-07-24 20:23 妮king狼 阅读(1726) 评论(0) 推荐(0)
摘要:lightoj 1245Harmonic Number (II)题意:给定一个 n ,求 n/1 + n/2 + …… + n/n 的值(这里的 "/" 是计算机的整数除法,向下取整)。思路:唉,想了很久,最终还是没什么好方法。我的思路是这样的: 记录结果为 n/1,n/2,……,n/n的有多少个,然后乘以各自的值就得到结果了。唉暴搞的人桑不起,2.2s过了,膜拜 oj 里边 100+ms过的大神。代码: 1 #include 2 #include 3 using namespace std; 4 5 typedef long long LL; 6 7 int main() 阅读全文
posted @ 2013-07-22 20:39 妮king狼 阅读(390) 评论(0) 推荐(0)
摘要:hdoj 1299 Diophantus of Alexandria链接:http://acm.hdu.edu.cn/showproblem.php?pid=1299题意:求 1/x + 1/y = 1/n (x 2 #include 3 #include 4 #include 5 using namespace std; 6 7 typedef long int LL; 8 const int maxv = 35000; 9 int prime[4000], num[maxv];10 11 void prim() //筛法求素数12 {13 int i, j, k = 1;... 阅读全文
posted @ 2013-07-21 20:19 妮king狼 阅读(245) 评论(0) 推荐(0)
摘要:lightoj 1007 - Mathematically Hard链接:http://www.lightoj.com/volume_showproblem.php?problem=1007题意:给定一个区间[m, n],假设 小于m的与m互质的数的个数为 s(m),小于m+1的与m+1互质的数的个数为 s(m+1),……,小于n的与n互质的数的个数为 s(n)。如果 m == n,输出 a = s(m)*s(m),否则,输出 a = s(m)*s(m) + s(m+1)*s(m+1) + …… + s(n)*s(n)。数据规模为maxv = 5 * 10^6思路:求出maxv内的所有数的 a 阅读全文
posted @ 2013-07-15 21:20 妮king狼 阅读(382) 评论(0) 推荐(0)
摘要:链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=26&page=show_problem&problem=2421 题意:求 n 以内的每两个数的最大公约数gcd(a, b)的和 解题思路:假设m和n 是互质的两个数(m 2 #include 3 #include 4 #include 5 6 using namespace std; 7 8 typedef long long LL; 9 10 const int maxv = 4000002;11 阅读全文
posted @ 2013-07-11 20:57 妮king狼 阅读(327) 评论(0) 推荐(0)
摘要:The BalanceTime Limit: 5000MSMemory Limit: 65536KTotal Submissions: 3113Accepted: 1370链接:http://poj.org/problem?id=2142DescriptionMs. Iyo Kiffa-Australis has a balance and only two kinds of weights to measure a dose of medicine. For example, to measure 200mg of aspirin using 300mg weights and 700mg 阅读全文
posted @ 2013-05-08 18:57 妮king狼 阅读(328) 评论(0) 推荐(0)
摘要:找新朋友Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5518Accepted Submission(s): 2842 链接: http://acm.hdu.edu.cn/showproblem.php?pid=1286Problem Description 新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的号码肯定和N有大于1的公约数,否则都是新朋. 阅读全文
posted @ 2013-05-02 21:06 妮king狼 阅读(503) 评论(0) 推荐(0)