![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
bfs
文章平均质量分 73
MingDexterous
这个作者很懒,什么都没留下…
展开
-
AcWing打卡记录day 1
89 和 90都是快速幂的题目。 89是快速幂板子。 90是运用到了位运算,二进制,当a * b要大于long long 类型的话,因为要模p则可以,将b转换成二进制的数,然后一位一位的运算。 ll ksm(ll a,ll b,ll p){ ll ans=0; while(b){ if(b&1) ans=(ans+a)%p; a=(2*a)%p;//因为是二进制,所以每次都是乘2 b>>=1; } return ans; } 91是一个简单的状压dp的题目。 即用.原创 2021-10-06 09:46:55 · 98 阅读 · 0 评论 -
2021.7.14
这两天就是把VJ上剩下的三题刷完。学了状态压缩dp。 明天开始学博弈,sg函数。 状态压缩顾名思义。就是为了节省内存。将其状态用一个数存储下来。该数用几进制表示,就可以每一位上存储几种状态。 比如说 要存储 3个点是否去过。 是否去过是两种状态。那么我们就可以用二进制来存储去这三个点的状态。 例如 3 转换成2进制是 011 那么就可以认为,数字3存储的是 去过点 1 和点 2 没有去过点3的情况。 如果有3种状态,像k题一样 一个点有去过0,1,2次3种情况。那么就可以用三进制的数来存储。 和二进制原创 2021-07-15 01:06:04 · 175 阅读 · 0 评论 -
2021-07-12
康托展开 康托展开就是求一个字符串的字典序是这一串字符串的字符能组成的字符串中的第几名。(从小到大排列)。 时间复杂度 康托算法能在O(n2)的时间里求出该字典序的排名,用线段树维护的话能减少到O(nlogn)。 康拓展开的式子 ai表示的是,倒数第个i位置后面的数比倒数第i个位置的数小的个数。 即x则为这个字符串的排名-1,因为字典序最小的x为0。 为什么这个式子能求出排名 用 45231作为例子。 4后面比4小的数有 2 3 1。那么吧这三个数和4进行交换,那么后面4个数字随便排列都比之前的字典序要原创 2021-07-12 21:56:33 · 80 阅读 · 0 评论