11 2018 档案
摘要:题目描述: 对于一个询问,你需要求出max(Ai xor Ai+1 xor Ai+2 ... xor Aj),其中l<=i<=j<=r。(强制在线) 题解: 可持久化Trie+分块。 分块处理当前块上某点为起点,块后任一点为终点的最大异或和。 代码:
阅读全文
摘要:题目描述: 给定长度为n的数列X={x1,x2,...,xn}和长度为m的数列Y={y1,y2,...,ym},令矩阵A中第i行第j列的值Aij=xi xor yj,每次询问给定矩形区域i∈[u,d],j∈[l,r],找出第k大的Aij。 题解: 由于n小m大,面向m建可持久化trie树。 查询时查
阅读全文
摘要:题目描述: 给定n个非负整数A[1], A[2], ……, A[n]。对于每对(i, j)满足1 <= i < j <= n,得到一个新的数A[i] xor A[j],这样共有n*(n-1)/2个新的数。求这些数(不包含A[i])中前k小的数。 题解: 建一棵01Trie树,然后把所有数扔进去。 将
阅读全文
摘要:题目描述: 给定矩阵A,B和模数p,求最小的x满足 A ^ x = B ( mod p)。(p是质数) 题解: 同样是BSGS,只是这道题放在了矩阵上。 其实并不需要矩阵求逆,将BSGS原理中的i * m + j 改为 i * m - j即可。 代码:
阅读全文
摘要:题目描述: 题解: 先见出Trie图,然后bfs出所有状态。 我们按照字典序遍历,只要找到合法串直接跳出。这样可以保证长度最小+字典序最小。 代码:
阅读全文
摘要:题目描述: Fish是一条生活在海里的鱼。有一天他很无聊,就到处去寻宝。他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进。 通过翻阅古籍,Fish 得知了这个密码的相关信息: 该密码的长度为N。 密码仅含小写字母。 以每一个字符为中心的最长回文串长度。 以每两个相邻字符的间隙为中
阅读全文
摘要:题目描述: 我们称一个正整数N是幸运数,当且仅当它的十进制表示中不包含数字串集合S中任意一个元素作为其子串。 例如当S=(22,333,0233)时,233是幸运数,2333、20233、3223不是幸运数。 给定N和S,计算不大于N的幸运数个数。 题解:trie图上数位dp。 好像很裸的样子。 代
阅读全文
摘要:题目描述: 给定整数K和质数m,求最小的正整数N,使得 11111⋯1(N个1)≡K(mod m) 说人话:就是 111...1111 mod m =K 题解: 将两边一起*9+1,左边就是10^ans,然后BSGS即可。 代码:
阅读全文
摘要:题目描述 题解: 将原式处理成A^x≡B(mode C)的形式即可。 代码:
阅读全文
摘要:题目描述 题解: 貌似是BSGS板子题。 代码:
阅读全文
摘要:BSGS和EXBSGS是OI中用于解决A^xΞB(mod C)的常用算法。 1.BSGS BSGS用于A,C互质的情况。 令m=sqrt(C),此时x可表示为i*m+j。 式中i和j都<=sqrt(C) 原式Ax≡B(mode C) -->Ai*m * Aj≡B(mode C) 枚举Ai*m,此时A
阅读全文
摘要:题目描述: 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对。 题解: 代码:
阅读全文
摘要:有一个n*m的表格,格子(i,j)中的数w是σ(gcd(i,j))。 Q组询问,每次给出n,m,a。求表中所有不超过a的w之和。 题解: 然后后面的用树状数组动态更新即可。 代码:
阅读全文
摘要:题目描述: 给出n,求出三元组(a,b,c)组数,使得gcd(a,b,c)==1且1/a+1/b==1/c。 题解: 代码:
阅读全文
摘要:题目描述 题解: 有一个式子: 证明先不说了。 然后倒一波反演: 然后整除分块就好了。 代码:
阅读全文
摘要:题目描述不说了。 题解: Trie+vector…… Trie存学生,vector存答案。 极为无脑但无脑到让人怀疑 代码:
阅读全文
摘要:题目描述: 题解:Trie树。 从左向右扫一遍,然后从右向左扫一遍。 代码:
阅读全文
摘要:题目描述: 现在你拥有 n 颗宝石,每颗宝石有一个能量密度,记为 ai,这些宝石的能量 密度两两不同。现在你可以选取连续的一些宝石(必须多于一个)进行融合,设 为 ai, ai+1, …, aj,则融合而成的宝石的能量密度为这些宝石中能量密度的次大值 与其他任意一颗宝石的能量密度按位异或的值,即,设
阅读全文
摘要:题目大意: 给出两个串(长度<=1e6),问是否同构,如果同构输出最小表示。 题解: 这是最小表示法模板题。在这里好好讲一下最小表示法。 首先有一个最暴力的方法:把所有表示搞出来排序。 时间复杂度O(n^2logn); 然后可以发现,比较两个字符串时都是从第一位向后比。 伪代码: 时间复杂度O(n^
阅读全文
摘要:题目大意: Alice有n个字符串S_1,S_2...S_n,Bob有一个字符串集合T,一开始集合是空的。 接下来会发生q个操作,操作有两种形式: “1 P”,Bob往自己的集合里添加了一个字符串P。 “2 x”,Alice询问Bob,集合T中有多少个字符串包含串S_x。(我们称串A包含串B,当且仅
阅读全文
摘要:题目大意: 你有两种机器,一种可以生产回文串,一种可以链接两个串。链接时可以覆盖相同前/后缀。 给出多个串,求最少链接多少次。 题解:先做manacher找出最长回文,然后贪心发现这是线段覆盖。 排序然后搞就行了。 代码:
阅读全文
摘要:题目大意: 输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。 题解:若X,Y都是回文串且相邻,则共用一个’#‘。 可以对于每个‘#’找出其左边界和右边界。 代码:
阅读全文
摘要:题目贴图: 题解: AC自动机/Trie图+矩阵乘法。 首先构建矩阵,因为有: f[ i ] = Σ f[ j ] * g[ j ][ i ] 然后就搞成矩乘了。 把邻接矩阵自乘足够多次就行了。 代码:
阅读全文
摘要:题目大意: 求包含n个串的长度最短,且字典序最小的串。 题解: AC自动机/Trie图 + bfs。 我用的是Trie图。 把所有串扔到Trie树上,Trie图建fail指针。 然后的bfs搜索路径。 遍历时从小到大,可以保证字典序最小。 状态中压入各个子串出现过/为出现过。 代码:
阅读全文
摘要:题目描述: 给出n个串(总长<=30000),求是否有一个无限长的串,使得不包含任何一个给出串。 题解: 建trie图,然后搜索。 搜索时如果这个点搜过以后无法return true,那么我们可以标记这个点。 只要再次搜到这个点直接return false 代码:
阅读全文
摘要:题目描述: 喜欢钻研问题的JS 同学,最近又迷上了对加密方法的思考。一天,他突然想出了一种他认为是终极的加密办法:把需要加密的信息排成一圈,显然,它们有很多种不同的读法。 例如‘JSOI07’,可以读作: JSOI07 SOI07J OI07JS I07JSO 07JSOI 7JSOI0 把它们按照
阅读全文
摘要:题目描述: https://www.luogu.org/problemnew/show/P4015 题解: 建图跑最小费用流。 对于最大费用,我们可以重新建边,并把权值变成相反数。 也称 最大费用最大流。 代码:
阅读全文
摘要:题目描述:你有一个#。有8个不同方向可以动,编号依次为A-H。求使其中心8个块数字变成相同时,最短字典序最小的字符串以及中心的数字。 题解: 对于这种状态极为发散的搜索,我们可使用A*。而这道题要求最短,我们可以采用IDA*。 估价函数h=8-(中心块上出现最多的数的出现次数)。 因为每动一次只踢出
阅读全文
摘要:题目描述: 你现在有x^1,每动一步可以用当前存在的x^a和x^b获得x^(a+b)或x^(abs(a-b))。给出n(n<=1000),求最少多少步能得到x^n。 题解: IDDFS。枚举步数,然后dfs+剪枝。 剪枝: 1.目标高于上限时减掉; 2.当前存在两个>n或以上时减掉。 代码:
阅读全文
摘要:题目描述:给出一棵树,其中1为根。1号有病,每天向下传染一代。每天可以断一条边。求最小传染数。 代码:
阅读全文
摘要:题目描述:在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位。在任何时候一个骑士都能按照骑 士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标相差为2,纵坐标相差为1的格子)移动到空 位上。 给定一个初始的棋盘,怎样才能经过移动变成如下目标棋盘: 为了体现出骑士精
阅读全文
摘要:题目描述: 在古埃及,人们使用单位分数的和(形如1/a的, a是自然数)表示一切有理数。 如:2/3=1/2+1/6,但不允许2/3=1/3+1/3,因为加数中有相同的。 对于一个分数a/b,表示方法有很多种,但是哪种最好呢? 首先,加数少的比加数多的好,其次,加数个数相同的,最小的分数越大越 好。
阅读全文
摘要:题目描述:8×8的棋盘上有4个棋子,棋子的运动方法如下:1.如果其上/下/左/右一格没有棋子,则可以去;2.如果其上/下/左/右一格有棋子,而且沿原方向再跳一步没有,则可以去。 给出初始结束位置,问8步以内能否走到? 题解:双向BFS。 从初始结束位置一起跑4步。 也称meet_in_the_mid
阅读全文
摘要:题目描述: 给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用。 题解: 这是最小费用最大流模板。 对于EK算法,我们可以通过bfs找出增广路径然后解出最大流。 但是最大流值是一定的,流法却有很多。 我们可以将每条边费用作这条边的边长,用
阅读全文
摘要:题目描述: 由于人类对自然资源的消耗,人们意识到大约在 2300 年之后,地球就不能再居住了。于是在月球上建立了新的绿地,以便在需要时移民。令人意想不到的是,2177 年冬由于未知的原因,地球环境发生了连锁崩溃,人类必须在最短的时间内迁往月球。 现有 n 个太空站位于地球与月球之间,且有 m 艘公共
阅读全文
摘要:题目描述: W 教授正在为国家航天中心计划一系列的太空飞行。每次太空飞行可进行一系列商业性实验而获取利润。 现已确定了一个可供选择的实验集合E= {E1,E2,…,Em},和进行这些实验需要使用的全部仪器的集合I={I1,I2,…In}。 实验Ej需要用到的仪器是I的子集RjÍI。配置仪器 Ik的费
阅读全文
摘要:题目描述: 给出一个网络图,以及其源点和汇点,求出其网络最大流。 题解: 1.Dinic Dinic算法可用于求最大流。 算法过程: bfs分层+dfs搜最大流。 注意:残余网络。 代码:
阅读全文
摘要:题目描述: 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数。 题解:(上图) 然后可以用前缀和维护连续一段莫比乌斯函数的和。 乘上n/k/d * m/k/d就行了。 代码:
阅读全文
摘要:题目: 求2^2^2^……(无限个2)%p。 题解:温习欧拉公式: 若a,p互质,有a^phi[ p ] ≡ 1( mod p ) 怎么用? 假设k = 2^2^2^…… 那么求k%p 就是2^k%p(无穷特性) 然后等于2^(k%phi[ p ]+phi[ p ])%p 我们的问题变成求解k%ph
阅读全文
摘要:题目描述: 给出一棵n个节点的树,每个点初始m值为1。 你有三种操作: 1.Add l r k ,将l到r路径上所有点m值加k。 2.Multi l r k ,将l到r路径上所有点m值乘k。 3.Query l r ,设x是l到r路径上的点,y是x的m值。假设有1~y共y个点,随机打乱,求形成错排的
阅读全文
摘要:题目描述: Devu想用花去装饰他的花园,他已经购买了n个箱子,第i个箱子有fi朵花,在同一个的箱子里的所有花是同种颜色的(所以它们没有任何其他特 征)。另外,不存在两个箱子中的花是相同颜色的。 现在Devu想从这些箱子里选择s朵花去装饰他的花园,Devu想要知道,总共有多少种方式从这些箱子里取出这
阅读全文
摘要:题目描述 《猪国杀》是一种多猪牌类回合制游戏,一共有三种角色:主猪,忠猪,反猪。每局游戏主猪有且只有一只,忠猪和反猪可以有多只,每只猪扮演一种角色。 游戏目的: 主猪(MP):自己存活的情况下消灭所有的反猪。 忠猪(ZP):不惜一切保护主猪,胜利条件与主猪相同。 反猪(AP):杀死主猪。 游戏过程:
阅读全文
摘要:题目大意:给你一棵树,其中点上和边上都有值。定义2-Path为经过一条边最多两次的路径,价值为经过点的权值加和-经过边权值*该边经过次数。4e5组询问,每次询问树上连接x,y两点的2-Path的最大价值。 先说一句: 机房中认为图画的最好:https://blog.csdn.net/lleozhan
阅读全文