随笔分类 -  巧妙的数学应用

摘要:http://poj.org/problem?id=2773题意:给定一个正整数,求与其互素的第K个整数。在这里要说一下什么叫互素:如果两个正整数X和Y的最大公约数为1,那么就说X与Y互素。这个用普通算法很容易超时,而有有些算法又篇幅较大。最后终于搜到一篇特别巧妙的算法,感觉自己一定要加强数学方面的学习。这个算法的核心代码有点不容易理解,想了半天也没弄的十分明白。有高手路过,请指点迷津!!!Sample Input2006 12006 22006 3Sample Output135Source Code#include <iostream> //求出<=m的互质的 大于m的都 阅读全文
posted @ 2011-04-28 14:42 Pengchao Bai 阅读(359) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=2402题意:求从1开始的第i(1<= i <= 2*10^9)个数字回文。由于给出的测试数据范围太大,暴力搜索不得不丢弃。在网上找了两篇解题报告,看了好一会,才完全弄明白。解题方案:(1)先求出第i个数字回文的位数k,当位数为k时,k位数字组成的回文数为f(k)=9*10^((k-1)/2),可以根据这个公式计算出第i个数字回文由几个数字组成。(2)计算出第i个数字回文在k位数字组成的回文中的排名x。(3)计算出(k+1)/2位数字当中的最小值y,即1000···000;(4)回文的左部为y+=x- 阅读全文
posted @ 2011-04-28 10:53 Pengchao Bai 阅读(529) 评论(0) 推荐(0)