数论
cggwz
这个作者很懒,什么都没留下…
展开
-
Hankson的趣味题(NOIP2009)
题目链接:Hankson的趣味题 怎么讲呢?感觉这一题的难度给高了。 其实涉及的数学推理其实并不难,而且一旦数学推理结束,就是暴力枚举了,而且代码也短没什么难度。 所以我们就进行一下关键的数学分析。 我们要求x满足一下要求:(x,a0)=a1[x,b0]=b1括号是什么意思,大家应该知道。 我们不妨设:x=m*a1a0=a*a1b1=n*xb1=b*b0...原创 2018-07-16 22:58:35 · 325 阅读 · 0 评论 -
同余方程(NOIP2012)
传送门裸的求逆元。代码如下:#include<cstdio>#include<algorithm>#include<cstring>using namespace std;long long a,b;//mod为素数时,n为mod-2;mod为合数时,n为phi(mod)-1,phi为欧拉函数 long long pow_mod(long lo...原创 2018-11-04 22:16:09 · 196 阅读 · 0 评论 -
倒水
传送门基本思想,就是二进制表示有两条基本性质:第一个性质,如果n个瓶子可以成功转化成k个,当且仅当n的二进制表示中有k个1第二个性质,我们如果在二进制的第i个位置加1,其代价高于在1到i-1每一位上都加1.第一条性质为我们提供了目标,第二条性质为我们提供了最佳方案。即从地位开始加,如果当前位是0,不操作,因为徒增瓶子,无效果如果是1,就加一个瓶子。开始统计1的个数,每次操作后把1的...原创 2018-10-24 21:41:43 · 134 阅读 · 0 评论 -
求和
1024节日快乐上面是题目链接今天是一个特殊的日子,很荣幸能在这一天用打代码来庆祝这一特殊的节日。坐标:老师办公室这道题很简单,快速幂就够。事实上,对于很大的a我们没必要去求因为:ab=(a%p)b (mod p)所以,对于很大的a,把1到10000的求一下即可。代码如下:#include<cstdio>#include<cstring>#inc...原创 2018-10-24 20:44:19 · 143 阅读 · 0 评论 -
小凯的数字
这是一道水题首先一个数学常识:一个数各个数位上的数字之和对9取模的结果即为该数字对9取模的结果。所以引申一下就是:将当前数字任意切分,求和得到的数,对于9取模的结果,即为当前数字对9取模的结果。这个结果,应当很好证明,我就不证明了。所以,有了这个结论,我们就可以秒解这道题。用一个等差数列求和公式,如果怕乘法爆longlong,可以边乘边取模,然后手动求一下2在模9下的逆元,很好想,5就够...原创 2018-10-31 20:27:02 · 445 阅读 · 1 评论 -
余数求和(CQOI2007)
余数求和这是一道老题,但是作为一道省选题,它的代码却短小精悍,可以观赏。我们只需要进行数学推导即可解决。(60分暴力分应该是可以秒拿的)由题意得:ans=∑i=1nk%ians=\sum\limits_{i=1}^{n}k\%ians=i=1∑nk%i首先我们需要知道 a%ba\%ba%b 可以表示为 a−b∗⌊ab⌋a-b*\lfloor\frac{a}{b}\rfloora−b∗⌊...原创 2018-10-31 19:14:28 · 219 阅读 · 0 评论 -
苦恼的小明
cgg传送门这题的解法是费马小定理+欧拉函数+快速幂整理:费马小定理:a^(φ(m))≡1(mod m) ((a,m)=1) (phi为欧拉函数)所以得:(a^b)mod m=(a^(b%phi(m)))mod m欧拉函数线筛打表就好了代码如下:#include<cstdio>#include<cstring>#include<algo...原创 2018-10-23 22:29:50 · 201 阅读 · 0 评论 -
仪仗队(SDOI2008)
异世界传送门看输入输出就很简单。事实上只要想通了,就没有什么问题几乎是纯数学分析我们考虑对称性,可以计算右下角的三角形的图形中的点数。再纵向观察,查找规律,就可看出对于第i列,可以看见的点有euler(i-1)所以累加就好了,然后乘2加一,就ok了怎么分析,明年再说。代码如下:#include<cstdio>#include<cstring>#incl...原创 2018-10-20 15:01:12 · 271 阅读 · 0 评论 -
细胞分裂(NOIP2009普及组)
传送门素数分解,简单数论但是要细心代码如下:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n,m1,m2;int ans,t,num;int maxu;int prime[30001];void div(){ memset(prim...原创 2018-10-18 21:15:19 · 976 阅读 · 0 评论 -
转圈游戏(NOIP2013)
传送门 这个这个…… 写个取余的快速幂就好了。 代码如下:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n,m,k,x;long long pow_mod(long long x, long long n, long long mod...原创 2018-08-17 21:30:50 · 480 阅读 · 0 评论 -
数学相关知识点汇总
文章目录1、最大公因数2、最小公倍数3、扩展欧几里得算法4、欧拉函数5、费马小定理6、快速幂7、逆元8、素数素数判定素数筛法9、杨辉三角没错还有不到一个礼拜就要NOIP了,而我还在办公室敲代码(然而不觉得有什么用),而且NOIP后一个礼拜,还有大联考,真是完蛋。但是,我还是要怀着悲痛的心情(刚在文化课上被班里巨神吊打)来整理一下NOIP中数学相关的知识点(毕竟在这方面挂过)。1、最大公因数...原创 2018-11-07 21:43:32 · 646 阅读 · 0 评论