摘要:
题意一个数列A,数的范围均在[0,2N1]内,求一个B,使得新生成的数列C中逆序对最多(Ci=AixorB),输出最多的逆序对。(|A|<=105) 分析这种题当然要逐位考虑..考虑到二进制和xor,我们需要想到trie... 题解将数列插入到一棵tri... 阅读全文
摘要:
题意K(1≤K≤109)堆石子,每堆石子个数不超过L(2≤50000),问Nim游戏中先手必败局面的数量,答案对109+7取模。 分析容易得到$f(i, k) = \sum_{j=0}^{n 1} f(i 1, j) f(i 1, k^j), f(1, i(... 阅读全文
摘要:
题意给出n个01字节和m个01字节,要求用后者去匹配前者,两个串能匹配当且仅当除了每个字节末位不同,其他位都要相同。问匹配后者至少有多少个末位不同。(1≤m≤n≤2.5×105) 分析首先我们可以用kmp计算出能匹配的位置,然后单独考虑末位不同的... 阅读全文
摘要:
题意给两个树,大小分别为n和m,现在两棵树各选一些点(包括1),使得这棵树以1号点为根同构(同构就是每个点的孩子数目相同),求最大的同构树。(n, m<=500) 分析我们从两棵树中各取出一个点,考虑以这两个点为根能得到的最大同构数。 题解容易得到:设d(i,j)表示第一棵树选i号点,第... 阅读全文
摘要:
题意给出一棵n个点的树,求包含1号点的第k小的连通块权值和。(n<=105) 分析k小一般考虑堆... 题解堆中关键字为s(x)+min(a),其中s(x)表示x状态的权值和,min(a)表示x状态相邻的不在x里的的点的最小权值。每一次从堆中弹出最小的,然后用这个来拓... 阅读全文
摘要:
Case 1 题意要求给出下面代码的答案然后构造输入。给一个图, n 个点 m 条边 q 次询问,输出所有点对之间最大权值最小的路径。 题解把每一个询问的输出看成一条边,建一棵最小生成树。 Case 3 题意给输出,要求构造输入使得用所给代码运行后得到的输出和给出的输出相同。所给代码:n 次 Di... 阅读全文
摘要:
题意给定两个字符串 A 和 B,求下面四个问题的答案:1.在 A 的子串中,不是 B 的子串的字符串的数量。2.在 A 的子串中,不是 B 的子序列的字符串的数量。3.在 A 的子序列中,不是 B 的子串的字符串的数量。4.在 A 的子序列中,不是 B 的子序列的字符串的数量。其中子串是指本质不同... 阅读全文
摘要:
题意给一个N×M的01网格,1不能走,从起点(1,1)走到(N,M),每次只能向下或向右走一格,问两条不相交的路径的方案数。(n, m<=1000) 分析先考虑一条,再考虑去掉相交的情况。 题解令d(a,b,c,d)表示从(a,b)走到(c,d)... 阅读全文
摘要:
题意给定相离的两个圆(圆心坐标以及半径)以及圆外的一个定点P,求出过点P的且与已知的两个圆外切的所有圆(输出总数+圆心、半径)。 分析如果强行解方程,反正我是不会。本题用到新姿势:圆的反演。二维上的圆的反演通常是指定一个圆C为基础,其圆心O为反演中心,其半径r为反演半径。对于平... 阅读全文
摘要:
题意n(1≤n≤100)个点m(1≤m≤1000)条加权边的无负环无向图,求一个最小环。 分析加入有一个环,其编号最大的点为L,那么这个环可以看为L与其相邻的两个点A和B与A到B的最短路上的点(编号均小于L的最短路)。考虑floy... 阅读全文
摘要:
题意给定一个长度为n(1≤n≤500000)的序列ai(0≤ai≤1018),将它划分为m(1≤m≤n)段连续的区间,设第i段的费用ci为该段内所有数字的异或和,则总费用为$c_1 \ or \ c_2 \ or \ ... 阅读全文
摘要:
题意给定一个n个点、m条边的带权无向图,其中有s个点是加油站。每辆车都有一个油量上限b,即每次行走距离不能超过b,但在加油站可以补满。q次询问,每次给出x,y,b,表示出发点是x,终点是y,油量上限为b,且保证x点和y点都是加油站,请回答能否从x... 阅读全文
摘要:
题意在线、可持久化地维护一条二维平面上的折线,支持查询与任意一条直线的交点个数。点的个数和操作个数小于105 分析一条折线可以用一个序列表示,可持久化序列考虑用可持久化treap。如何判断交点?如果有交点,那么一定与包含这个折线的矩阵有交点。 题解所以我们可持久化treap一下即可,虽然这个... 阅读全文
摘要:
题意求⌊(b+√d2)n⌋(mod7528443412579576937),$\left( 0 \le n \le 10^{18}, 0 < b^2 \le d < (b+... 阅读全文
摘要:
题意求节点数为n的有根树期望的叶子结点数。(n≤109) 分析神题就打表找规律.. 题解方案数就是卡特兰数,h0=1,hn=∑n1i=0hihn1i。设叶子数量和为fn,则得到$f_n = 2 \sum_{i=0}^{n ... 阅读全文
摘要:
题意N×M的网格,一开始在(1,1)每次可以向下和向右走,每经过一个有数字的点最多能将数字减1,最终走到(N,M)。问至少要走多少次才能将数字全部变为0。(N,M<=1000,ai,j<=106) 分析结论题QAQ,不会证明... 题解设$d(i... 阅读全文
摘要:
题意给出一个N×N的矩阵B和一个1×N的矩阵C。求出一个1×N的01矩阵A,使得D=(ABC)AT
最大,其中AT是矩阵A的转置。(n<=500) 分析好神的题。首先我们容易推出一个式子:... 阅读全文
摘要:
题意:T(1≤T≤50000)次询问,每次给出n,m(1≤n,m≤50000),求∑ni=1∑mj=1d(ij),其中d(n)表示n的约数个数 分析有个结论:<p $$\sum_{x_1}^{y_1} ... 阅读全文
摘要:
题意m个人n个物品,第i个物品生命值为Ai,第i个人每秒可以减少一个物品Bi的生命值,给出一个m×n的矩阵,如果i行j列为1,则表示第i个人可以攻击第j个物品,否则不能攻击,问至少需要多少秒,能干掉所有物品。一个物品被干掉当且仅当生... 阅读全文
摘要:
题意给一个n个点带边权的树。有m次操作,每一次操作一个点x,如果x已经出现,则x消失。否则x出现。每一操作后,询问从某个点开始走,直到经过所有出现的点,最后再回到开始的那个点的最短路程。 分析首先容易知道我们选任意一个在某两点路径上的点作为起点都能得到最优解(包括端点)。我... 阅读全文