![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论_逆元
TouchDreamer
这个作者很懒,什么都没留下…
展开
-
HDU 5976 Detachment(逆元+二分优化+数学分析)
题目大意 给定一个数,让你分成互不相等的n个数(n为自然数),使这些数的乘积最大,输出最大乘积。题目分析 我也不知道数论的一些东西怎么证明,但是拿到一个数的时候分配,肯定是要分配到的数越小越好,但是不能分配出1,因为分配出1相乘之后得到的结果不会增加,因为想法就是枚举2,3,4,5……知道不能枚举即可。这个可以预处理一下,当然肯定还有未分配完的数,这时候要分情况讨论: 情况1:枚原创 2016-11-08 12:29:51 · 1277 阅读 · 0 评论 -
LightOJ - 1102 Problem Makes Problem
题目分析 这道题主要利用了隔板法,那么如何使用呢??对于这个问题来说我们可以这样做,我们将从n个数中选取k个部分,因为里面有些部分可能为0,那么我们可以让每个部分至少为1,那么我们直接让原来的n加上k即可,这样就相当于在n+k个1数组成的n+k-1个空子中插入k-1隔板,那么这样就很明显了,直接求逆元然后处理一下可过,本来想把n的每个阶乘的值求出来没想到超空间了,于是老老实实不打表了。#inc原创 2017-01-03 20:46:21 · 458 阅读 · 0 评论 -
LightOJ - 1170 Counting Perfect BST
题目分析 本题是卡特兰数加逆元,这里面逆元用扩展欧几里得实现。因为事例比较多还需要二分找出一共有多少个值满足。卡特兰数公式是:f[n]=f[n−1]∗(4∗n−2)/(n+1)f[n] = f[n-1]*(4*n-2)/(n+1)#include <cstdio>#include <vector>#include <cstring>#include <iostream>#include原创 2017-01-04 21:20:58 · 323 阅读 · 0 评论 -
POJ 1845 Sumdiv(逆元或者二分求解等比数列)
题目分析 本题是求ABA^B所有因子和对9901取模后的值。我们可以将A进行拆分。A=pk11∗pk22∗pk33.......∗pknnA = p_1^{k_1}*p_2^{k_2}*p_3^{k_3}.......*p_n^{k_n}那么可以得到AB=pk1B1∗pk2B2∗pk3B3.......∗pknBnA^B = p_1^{k_1 B}*p_2^{k_2 B}*p_3^{k_3 B}原创 2017-01-05 17:25:49 · 277 阅读 · 0 评论 -
蓝桥杯 历届试题 数字游戏
题目分析 这道题给了一个很明显的一个序列,那么就是数列可以一次写为:(1+0),(1+0+1),(1+0+1+2),(1+0+1+2+3)......(1+0+1+2+..+n−1)(1+0), (1+0+1), (1+0+1+2),(1+0+1+2+3)......(1+0+1+2+..+n-1),这样就转化为1加上一个等差数列,那么直接按照等差数列求和公式Sn=(a1+an)∗n/2S_n原创 2017-03-19 20:58:59 · 411 阅读 · 0 评论