首页 > 其他分享 >RE:从零开始的数论相关学习

RE:从零开始的数论相关学习

时间:2022-10-15 08:23:12浏览次数:45  
标签:右移 10 vis 数论 sum RE int 从零开始

开坑。

1-位运算

我们知道,C++中的位运算有:&|^~>><<
应用:

1-1快速幂:

int qpow(int a,int b,int p)
{
    int vis=a;
    int sum=1;
    while(b)
    {
        if(b&1)
        {
            sum*=vis;
            sum%=p;
        }
        vis*=vis;
        vis%=p;
        b>>=1;
    }
    return sum;
}

不妨模拟一下上述过程。
假设开始,我们 \(a=5\),\(b=10\),\(p=998244353\),即求 \(5^{10}\mod 998244353\) 的值。
最初,我们的 \(vis=5\),\(sum=1\)。

第一次循环:

可以发现,\(b\) 作为一个二进制数时,它的表示是 \((1010)_{2}\)。
而 \(1\),显然为 \((0001)_{2}\)。
因此这里 b&1 的结果为 0000,即 \(0\)。
所以这里跳过乘的过程。
这时候 \(vis\)变成 \(vis^2\),即 \(10\),然后 \(b\) 右移。

第二次循环:

可以发现,\(b\) 作为右移后时,它的表示是 \((101)_{2}\),因此这里 b&1 的结果为 001,即 \(1\)。
进入乘的过程,让 \(sum*vis\),此时\(sum=10\),然后重复 \(vis\) 变成 \(vis^2\),然后 \(b\) 右移。
重复之后发现,显然结果正确。
时间复杂度 \(\log n\)。

1-2 状态压缩

不会状态压缩动态规划,我还不会状态压缩吗?
不会。

标签:右移,10,vis,数论,sum,RE,int,从零开始
From: https://www.cnblogs.com/SoN3ri/p/mathmasterisme.html

相关文章

  • Cannot apply DjangoModelPermissionsOrAnonReadOnly on a view that does not set `.
    这个问题是在使用djangoREST做自定义认证的时候出现的 解决方法是在settings.py中注释掉这个REST_FRAMEWORK={'DEFAULT_PERMISSION_CLASSES':['rest......
  • 2022-08-21-Freewind主题_cdn替换版
    layout:postcid:16title:Freewind主题cdn替换版slug:16date:2022/08/2114:06:00updated:2022/08/2114:07:57status:publishauthor:admincategories:......
  • Redis的持久化(RDB和AOF)
    RDB(RedisDataBase)在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。Redis会单独创建(fork)一个子进程来......
  • 解决SourceTree在指定了ssh之后,仍然总是要求输入密码的问题
    通过ssh进行验证,是不需要输入账号密码的。那为什么SourceTree每次拉取代码的时候,总是要求输出密码呢?我查了好久资料都没能解决这个问题,后来通过对比才发现,核心点原来是.g......
  • Windows安装Redis的流程
    1.下载下载地址:https://github.com/tporadowski/redis/releases 2.解压新建一个文件夹为redis-5.0.10,然后将下载好的zip包解压到新建的redis-5.0.10文件夹中。 3......
  • Redis 发布订阅+Redis 主从复制
    订阅是什么Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis客户端可以订阅任意数量的频道。订阅/发布消息图:  下图展......
  • java: Retirement
    /***版权所有2022涂聚文有限公司*许可信息查看:*描述:*CoreJava,VolumeI:Fundamentals,TwelfthEditionbyCayS.Horstamnn*CoreJava,VolumeII:Adv......
  • DEMO:USEREXIT 隐士增强
    直接上干货了。之前有人问过UserExit怎么修改。直接点修改按钮不行啊。点修改肯定是不行的,另外还有人做过下面的这种:上面的这种属于modify,修改了源码,不建议这么做,可能受升......
  • vue-preview图片预览组件的使用
    一、运行命令`npmivue-preview `安装插件。二、在main.js里面进行全局声明。 三、插入缩略图,imgs1为定义的用于存储缩略图数据的属性。   四、获取数据......
  • ABC253Ex We Love Forest
    容易发\(i\)条边的森林,有\(n-i\)棵树,那么有:令\(g_k(S)\)表示点集\(S\)形成含有\(k\)棵树的森林的方案数答案为:\(\displaystyle\frac{g_{n-i}(U)i!}{m^i}\)......