ACM之数论
PK0071
这个作者很懒,什么都没留下…
展开
-
HDU 2601 An easy problem
题意:给一个n,求它用i * j + i + j来表示的方法有几种 题解: n = i * j + i + j n + 1 = (i + 1)(j + 1) 即求n + 1的因子个数 #include #include using namespace std; int main() { int T; __int64 n; //n太大要用int64来存 cin>>T; while(T-原创 2013-04-18 14:13:18 · 579 阅读 · 0 评论 -
HDU 2136 Largest prime factor
数论 题意:给定一个数,求出该数字的最大素因子在素数表中的序号 方法:素数筛选+打表 在素数筛选的基础上把标记的动作换一下,改成标记当前的素因子序号(想想为什么?),就巧妙的完成题目的要求,接下来打表即可 #include using namespace std; int k,n; int prime[1000000 + 10]; int main() { memset(pri原创 2013-04-29 19:43:56 · 764 阅读 · 0 评论 -
HDU 1254 推箱子游戏(搞了一下午。。。)
HDU的一个推箱子游戏求最优步数,搜索算法,搞了一下午。。。原创 2013-08-22 16:40:46 · 1488 阅读 · 2 评论 -
HDU 1576 A/B(数论)
题目:求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。数据给出n和b 推导过程 A/B = K K = 9973*P + X A = 9973*Q + N 得: (9973*Q + N)/B = K = 9973*P + X 9973*Q = 9973*P*B + X*B - N 9973*(Q - P*B)原创 2013-08-25 11:50:51 · 981 阅读 · 0 评论