ACM数论总结2

        这周的话就是继续往下看了博客,关于{1,2,...,n}的子集和的一个有趣结论,其实最后的一部分我也没有看懂,所以之后还需要阅读这一部分。

        也学习到了区间GCD的解决方法,也是一个模板解决方案,之前我确实只会用暴力解决该问题,还了解到了用线段树解决区间GCD的问题,所以也复习了一些基础的线段树操作,可惜的就是那个题目的链接我没法打开,呜呜呜。

        扩展欧几里得,以及线性同余方程,中国剩余定理的一些例题还是在第一篇的基础数论的延伸当中看到的,比较有意思的就是中国剩余定理的非互质的时候,下面的poj的例题也做了一些,因为洛谷上的一些我可能水平真的不够,实在是没有什么思路,等我多看一些例题的时候再做可能会更好一些,因为直接做也是就对着答案看,觉得进步的水平也不大。

        到看到第二个数论基础的时候,相当于是复习了,感觉基础的函数推导以及基础的模板看着还是自己写的时候都是不费力的,当然进阶的知识还是很一般,但是也有之前没有看到过的一些新的知识点,费马定理以及莫比乌斯函数(莫比乌斯函数O(n)求解1~n以内的所有μ ( n ) ,还有就是逆元,阶乘的逆元,感觉自己在这方面还是有一些点不是很懂。

莫比乌斯例题模板:
 

const int maxn = 210000;
bool v[maxn];
int mm[maxn], p[maxn];
void sieze(int n)
{
	int m = 0; memset(v, false, sizeof(v));
	mm[1] = 1;
	for(int i = 2; i <= n; i ++){
		if(!v[i]){
			p[++ m] = i; 
            mm[i] = -1;
		}
		for(int j = 1; j <= m && i * p[j] <= n; j ++){
			v[i * p[j]] = true;//标记
			if(i % p[j]) {
				mm[i * p[j]] = -mm[i];
			}
			else {
				mm[i * p[j]] = 0;
			 	break;
			}
		}
	}
}

        反演以及与其他算法结合的例题也看了几道,其实没怎么懂,准备再从推导开始入手理解,慢慢来嘛,毕竟这个我也不能着急。

        这周的例题大部分也是博客当中的,因为洛谷我看了几道实在是不在我的解决水平以内,很简单的一些筛法以及基础的模板题目之前也做过一些,对我的帮助感觉并不是很大,也练习了一些ACWing上的题目,下周的话就继续阅读博客,然后先把这些例题给搞明白才行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钟一淼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值