日常笔记~

无聊的小笔记本
会持续更新,有意思的小东西都会放在这里~
其实就是一些很小又怕自己忘记的小知识,以及一些奇怪的东西

✡二进制的三种码
原码:就是二进制正常表示一个数,不足八位在前面补零补到八位
反码:对原码取反
补码:反码+1
另外一说~:补码就是负数在计算机中的二进制表示方法。

✡一些位运算等的预处理
像lowbit、log、平方等会用到多次的量,如果可以判断数据上界,
则最好写成一个数组,预处理出所有可能用到的值。
如果写成函数形式,那么每次需要使用这些值是都要调用一遍函数,
或者用如x&(-x)的式子现算一遍。增加了很多无意义的运算量,代码常数会变得较差。
每题一次预处理,超大常数远离我。与其用一些玄学的优化,不如减少运算量,更快更稳定。

✡2021.9.14博客园阅读量800祭

✡关于exgcd:
必须保证ax+by=c中c大于0,且若a<0,不能简单地将a取abs(a),
应写为

if(a<0) a=-a,c=-c;

✡阶乘逆元的求法:
facinv[i]=facinv[i-1]*inv[i]%mod;

✡在每一篇题解之前加上“题目的算法要素”有助于复习和总结哦~

✡在期望问题中要记得使用double

✡模块化、先概要后细化的编程习惯会让思路更清晰~

✡xor:相同为0,不同为1
太久没用,做题的时吧xor和|搞反了。。。。


✡位运算的优先级是真的玄学。。我觉得我需要好好学一下。
另外有位运算的地方都尽量加上括号把。。。
位运算我求你了。。别祸害我的其他运算符了行不行。。。


✡tarjan缩点+拓扑dp:
注意建新图的时候要用边的两端点所在的强连通分量,不能用端点本身。
建新图的时候用并查集维护一下点之间是否已经连接过,避免建重复的边,导致成环。


✡记忆化搜索的时间复杂度=状态数*枚举数


✡正难则反

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值