随笔分类 -  数学推理

摘要:快速乘 解决int64*int64%int64问题 移位快速乘,思想是把a*b%p中的b,对其进行二进制拆分,把b拆成二进制形式 a*b=ck-1*a*2k-1+ck-2*a*2k-2+ck-3*a*2k-3+....+c0*a*20 其中c代码二进制位是否为1,我们只需要把b每次&1看最后一位是否 阅读全文
posted @ 2019-12-17 15:36 bluefly-hrbust 阅读(382) 评论(0) 推荐(0)
摘要:给出一个四个规则 0->0=1 0->1=1 1->0=0 1->1=0 我自己当时一味的去找规律,没有把式子好好推一推。 当然每个人都能想到a[n]=0是必须的 当a[n-1]=1的时候,直接输出即可,因为前面无论到0还是1,最后与n-1结合都是1,而这正式我们需要的 那么问题来了,a[n-1]= 阅读全文
posted @ 2019-02-25 19:34 bluefly-hrbust 阅读(197) 评论(0) 推荐(0)
摘要:考虑当只有一个数出现奇数次的时候,我们可以很轻松的知道,把所有的数异或和即可,因为异或运算有一个非常有意思的性质,a^b^a=b 考虑当有两个数(a,b)出现奇数次的时候,我们异或和得到,num=a^b,那么怎么把这两个数分开呢? 我们想想,既然是位运算,一定和二进制有关,我们把num的二进制展开, 阅读全文
posted @ 2019-02-23 23:57 bluefly-hrbust 阅读(214) 评论(0) 推荐(0)
摘要:其实我最开始没有这道题。。。是做到UPC-11079-小P的决斗,训练结束后然后搜索了一波,才了解这个题的。 非常牛逼的题。。。这么多人做出来了。。。我好菜。。。 对于每对三元组Ta=(La,Ja,Ka),Tb=(Lb,Jb,Kb),定义Ta,Tb之间的差值D为D(Ta,Tb)=max(La−Lb, 阅读全文
posted @ 2019-02-22 23:02 bluefly-hrbust 阅读(213) 评论(0) 推荐(0)