随笔分类 - 洛谷
摘要:Description 给定$y, z, p$,求$x=y^{z} \mod p$或$xy\equiv z \pmod p$或$y^x\equiv z\pmod p$中x的值 Solution 第一个式子我们可以直接用快速幂求解答案。时间复杂度$O(log_{2}z)$ 第二个式子我们可以变形为$x
阅读全文
摘要:Solution 由于搜索量较大,我们采用IDA*算法求解。 按照迭代加深搜索的基本方法,我们限制搜索深度,然后寻找在当前限制下是否存在解。 为了提高算法效率,我们设计A*函数作为估价,返回目标位置与实际不同的个数即可。 在搜索时我们不妨记录上一步搜索的分支,以免执行上一次操作的逆操作。 本题难点主
阅读全文
摘要:Description 制作一个m层,体积为n的蛋糕,每层都是一个圆柱体,且下面的圆柱体的半径和高度必须大于上面的,求一种方案使得表面积最小(表面积不含底面积) Solution 搜索题,我们考虑如下优化(假定当前搜索到第i层,已经用了体积v,表面积s): Code 1 #include <bits
阅读全文
摘要:Description 给定整数n,构造一个递增的正整数序列使得a1=1,am=n,且对于任意的k(1≤k≤m)都存在ak=ai+aj,最小化序列的长度(即最小化m) Solution 由于n规模较小,所以我们可以采用迭代加深搜索来求解答案,即固定搜索的深度(序列的长度),搜索答案,若搜索不到答案则
阅读全文
摘要:Description 给定n,m,求一个包含n个1,m个0,且任何前缀的1的数量必须大于0的数量的合法01串的数量,答案对20100403取模。 Solution 我们建立坐标系,定义x坐标为1和0的数量的和,y坐标表示1和0的数量的差,那么向右上走就表示选择1,向右下走就表示选择0。 如果不考虑
阅读全文
摘要:Description 给定若干个形如$x\equiv a_i \pmod {b_i}$的同余方程,其中b不保证两两互质,求最小非负整数解x Solution 扩展中国剩余定理的模板题。 假定我们已经求出了前k-1个方程的一个解为x 并且记$M=\prod\limits_{i=1}^{k-1}{b_
阅读全文
摘要:Description 给定一个矩阵,要求实现区间修改,区间求和的操作 Solution 二维树状数组的模板题,类比一维,我们依旧利用差分的思想完成。 首先,运用简单的容斥思想,二维前缀和sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+a[i][j]
阅读全文
摘要:Description 给定若干个形如$x\equiv a_i \pmod {m_i}$的同余方程,其中m两两互质,求x Solution 这是中国剩余定理的模板题,具体解法如下: 我们首先求出$M=\prod\limits_{i=1}^{n}{m_i}$ 那么令$M_i=\frac{M}{m_i}
阅读全文
摘要:Description 设计一种数据结构,支持给指定点插入元素并覆盖先前的元素、查询某一点的排名、输出从任意排名之后的10名。 Solution 采用Splay实现 关于读入的字符串,我们可以哈希然后将哈希值丢到map里,这样就可以给每一个字符串一个编号,方便在Splay上操作。 关于插入和删除以及
阅读全文
摘要:Description 维护一种数据结构,并支持区间翻转、区间加、查询区间最大的操作 Solution Splay模板题,以序列中每个元素的下标为权值建立平衡树,维护两个标记:区间翻转和区间加标记,标记下传可以仿照线段树。 剩下的就是模板了 Code 1 #include <bits/stdc++.
阅读全文
摘要:Description 设计一种数据结构,支持元素的插入,查询当前元素的中位数 Solution 为了练习Splay,我决定用牛刀杀鸡,用Splay解决对顶堆的问题。 然后这就是一道Splay的模板题(简化简化再简化) Code 1 #include <bits/stdc++.h> 2 using
阅读全文
摘要:普通平衡树 Description 设计一种数据结构,支持插入元素,删除元素,查询值为val的元素的排名,查询排名为rnk的值,查询x的前驱、后驱 Solution Splay的基本操作,熟悉一下Splay,这些操作事实上与Treap也能解决。 为了实现Splay,我们有如下定义及实现方法。 1.定
阅读全文
摘要:Description 给定若干模式串组成的文本串,求每个模式串出现的次数。 Solution 由于模式串可能重复,所以直接按照AC自动机的模板会出错,所以我们定义一个same数组,end数组只记录最早的编号,每次如果要覆盖,便把令该节点的same值为这个位置上的end的值,查询一遍,输出答案就输出
阅读全文
摘要:Description 给定若干模式串,求是否存在一个无限长的文本串使得所有模式串均不能在此文本串中匹配。 Solution 这是一道AC自动机的变式,我们首先将这些模式串在Trie树上存储,以便AC自动机的操作。 我们这样思考:在我们存储Trie时,我们将每一个串的末尾标记一下,表示这是一个模式串
阅读全文
摘要:Description 给定n个模式串和m个文本串,对于每个文本串,求出这个文本串在模式串中最大匹配长度。 Solution 我们采用AC自动机求解。 首先构建自动机,在Trie上保存模式串,之后通过bfs求出失配数组(AC自动机的模板操作),之后处理匹配操作。 这里的一个难点就是我们需要记录最大的
阅读全文
摘要:Description 给定n,k,求$\sum\limits_{i=1}^{n}(k\ mod\ i)$的值 Solution 这是一道整除分块的模板题。 我们将mod运算拆开,得到$ans=n\times k-\sum\limits_{i=1}^{n}(\lfloor\frac{k}{i}\rf
阅读全文
摘要:Description 给定n,m,求 $\sum\limits_{i=1}^{n} \! \sum\limits_{j=1}^m[i\neq j](n\ mod \ i)(m \ mod \ j)\mod 19940417$的值 Solution 我们先求出$\sum\limits_{i=1}^{
阅读全文
摘要:Description 给定n,k,求 $(\sum\limits_{i=0}^{k}{C_n^i})\ mod\ 2333$ Solution 首先,我们要用到卢卡斯定理:$$C_n^m\ mod\ p=C_{n/p}^{m/p}*C_{n\ mod\ p}^{m\ mod\ p}\ mod\ p
阅读全文
摘要:Description 两个物体在一个周长为l的环上同方向运动, A初始时位置为a,速度为m,B初始位置为b,速度为n,求何时相遇。 Solution 根据题意,我们不难列出方程,推导如下 $a+mt \equiv {b+nt} \pmod l$ $(m-n)t \equiv {b-a} \pmod
阅读全文
摘要:Description 给定一张无向图,求两点之间次短路的长度 Solution 关于用A*算法求解k短路,在此不再赘述,相关内容请见这里。 这里主要讲述一个坑点,本题是无向图(与POJ2449不同),我们在A*扩展节点时需要标记该节点是否已经在当前这条路径上,否则,我们求出的次短路是不正确的,排除
阅读全文

浙公网安备 33010602011771号