09 2018 档案
摘要:题目大意:有$n(n\leqslant10^5)$种物品,第$i$个物品体积为$v_i$,都有$10^5$件。给定$m(m\leqslant10^5)$,对于$s\in [1,m]$,请你回答用这些商品恰好装$s$体积的方案数 题解:(by Weng_weijie) 背包问题模板(误) 对每个物品构
阅读全文
摘要:题目大意:给出$n-1$次多项式$A(x)$,求一个 $\bmod{x^n}$下的多项式$B(x)$,满足$B(x) \equiv e^{A(x)}$。 题解:(by Weng_weijie) 泰勒展开:$$f(x)=f(x_0)+\dfrac{f'(x_0)(x-x_0)}{1!}+\dfrac{
阅读全文
摘要:题目大意:给你一个集合$n,m,x,S(S_i\in(0,m],m\leqslant 8000,m\in \rm{prime},n\leqslant10^9)$,求一个长度为$n$的序列$Q$,满足$Q_i\in S$,且$\prod\limits _{i=1}^nQ_i=x$,求序列的个数 题解:
阅读全文
摘要:题目大意:有一个小偷,拿$k$个东西,有$n$种产品,每种产品都有无限多个。对于每个第$i$ 种产品,它的价值是$A_i$。可能偷走的物品价值之和。 题解:对于所有的物品构造生成函数$F(x)=\sum\limits_{i\in A}x^i$,取$k$个物品相当于取其中的$k$项相乘,输出$F^k(
阅读全文
摘要:题目大意:给出$n-1$次多项式$A(x)$,求一个 $\bmod{x^n}$下的多项式$B(x)$,满足$B(x) \equiv \ln A(x)$。在$\bmod{998244353}$下进行。保证$A[0]=1$ 题解:$$B(x)=\ln A(x)\\B'(x)=\dfrac{A'(x)}{
阅读全文
摘要:题目大意:求$n$个点的带标号的无向连通图的个数 题解:令$F(x)$为带标号无向连通图个数生成函数,$G(x)$为带标号无向图个数生成函数 那么$G(x) = \sum_{i=0}^{\infty} \dfrac{2^{i(i-1)/2}}{i!} x^i$ 枚举连通块个数可得$G(x)=\sum
阅读全文
摘要:题目大意:给一个像素的$a+b$,每个数字为$7\times5$的像素,每两个数字之间有间隔 题解:乱搞读入 卡点:无 C++ Code:
阅读全文
摘要:题目大意:对于一棵随机生成的$n$个结点的有根二叉树,所有不同构的形态等概率出现(这里同构当且仅当两棵二叉树根相同,并且相同节点的左儿子和右儿子都相同),求叶子节点个数的期望是多少? 题解:令$f_n$表示$n$个节点的二叉树的个数,$g_n$表示这$f_n$棵二叉树的叶子节点个数和。 打(ti)表
阅读全文
摘要:题目大意:一个长度为$n$的字符串,要求把它分成尽可能多的小块,使得这些块构成回文串 题解:贪心,从两边从找尽可能小的块使得左右的块相等,判断相等可以用$hash$ 卡点:无 C++ Code:
阅读全文
摘要:题目大意:有$n$根竹竿,第$i$根竹竿在$i$位置,第$i$根竹竿高度为$h_i$,每根竹竿可以向左倒或向右倒,问有几对竹竿倒下后顶端重合。 题解:求出每根竹竿倒下后的位置,离散化,记录一下每个点出现次数就行了 卡点:没开$long\;long$ C++ Code:
阅读全文
摘要:题目大意:有$n$个元素,第$i$个元素有三个属性$a_i,b_i,c_i$,设$f(i)=\sum\limits_{i\not = j}[a_j\leqslant a_i,b_j\leqslant b_i,c_j\leqslant c_i]$,令$d(i)=\sum\limits_{j=1}^n[
阅读全文
摘要:题目大意:有$n$个位置,有三种数,每个位置只可以填一种数,$d(d\leqslant8)$个位置有三种选择,其他位置只有两种选择。有一些限制,表示第$i$个位置选了某种数,那么第$j$个位置就只能选规定的数 输出一组合法的选数方案,无解输出$-1$ 题解:考虑$d=0$的情况,就是$2-sat$的
阅读全文
摘要:题目大意:给你一张$n$个点$m$条边的无向图,求一条$1->n$的路径,使得经过路径值的异或值最大(重复经过重复计算) 题解:某条路$k$被重复走了两次,那么它的权值对答案的贡献就是$0$,但是通过这条路径$k$,可以到达它连接的另一个点。 可以将路径拆成两部分,一部分是环,另一部分是链。假设我们
阅读全文
摘要:题目大意:有$n$盏灯,$m$个开关($n,m\leqslant 50$),每个开关可以控制的灯用一串$OX$串表示,$O$表示可以控制(即按一下,灯的状态改变),$X$表示不可以控制,问有多少种灯的亮暗状态 题解:线性基,线性基有一个性质,插入的数的任意一个集合的异或值都不同,所以若插入了$k$个
阅读全文
摘要:题目大意:给定$n$个数,选取任意个数,使得他们的异或和最大。 题解:线性基,原理贪心看不懂。 对于每一个数,设它的最高位的$1$在第$i$位,如果此时$P_i$为空,就将这个数加入线性基,否则异或上$P_i$继续找。最后贪心看$ans$异或上线性基的这一位会不会变大,若变大就转移 卡点:无 C++
阅读全文
摘要:题目大意:有$T(1\leqslant T\leqslant 10)$组数据,每组数据给你$A,B,C(0<A,B,C\leqslant 10^7)$,求$\sum\limits_{i=1}^A\sum\limits_{j=1}^B\sum\limits_{k=1}^C\varphi((i,j^2,
阅读全文
摘要:题目大意:有$n$个小时,有$m$个节目(每种节目都有类型$0/1$),有$k$个人,一个人连续看相同类型的节目会扣$w$快乐值。 每一种节目有都一个播放区间$[l,r]$。每个人同一时间只能看一个节目,第$i$个节目只能一个人看,看完可以获得快乐$val_i$。问最多可以获得多少快乐? 题解:最大
阅读全文
摘要:题目大意:$T(T\leqslant 10^5)$组数据,每组数据给你$n(n\leqslant 2\times 10^7)$,求$\sum\limits_{i=1}^n\sum\limits_{j=1}^{i-1}[(i+j,i-j)==1]$ 题解:$$\def\dsum{\displaysty
阅读全文
摘要:题目大意:给定$n$个$A$类元素和$m$个$B$类元素,每类元素有值$S$和$k$个值$x_0,x_1,\dots,x_{k-1}(k\leqslant 5)$。 要求选出一个$A$类元素$a$和$B$类元素$b$,最大化$a.S+b.S+\sum\limits_{i=0}^{k-1}|a.x_i
阅读全文
摘要:题目大意:给你$n$,一种合法的排列为,排列中没有$s[i\%n+1]-s[i]==1$,求合法方案数 题解:容斥,令$f_{i,j}$表示有$i$个元素,至少包含$j$个$s[i\%n+1]-s[i]==1$的方案数,发现$f_{n,1}=\binom n 1(n-2)!$个 推广$f_{n,k}
阅读全文
摘要:题目大意:给一张无向图,求三元组$(u,v,w)$满足$u->v->w$为简单路径,求个数 题解:圆方树,缩点后$DP$,因为同一个点双中的点一定地位相同 卡点:1.$father$数组开小,一不小心就续到了下面的$bool$的$vis$数组中,然后就挂成$98$,因为发现去掉没用的$vis$数组变
阅读全文
摘要:题目大意:给一张无向图,要求找一对$s$和$t$,使得其路径上的割边是最多的,输出其数量。 题解:把边双缩点以后求树的直径。 卡点:无 C++ Code:
阅读全文
摘要:题目大意:一个有向图称为半连通的,当且仅当对于任意两点$u,v$,都满足$u$能到达$v$或者$v$能到达$u$。给一张有向图,问该图最大半连通子图的节点个数及方案数。 题解:发现任意一个强连通分量显然都是半连通子图。把它们都缩成一个点。形成一个$DAG$,问题就转化为了找最长链长度及方案数。$DP
阅读全文
摘要:题目大意:给一棵树,有四种操作: 题解:$LCT$乱搞 卡点:无 C++ Code:
阅读全文
摘要:题目大意:基本同上一题[bzoj5329][Sdoi2018]战略游戏,只是每个点集内只有两个点,且只有一组询问而已。(双倍经验?我反正就直接改了一下代码就交了) 题解:同上一题(链接见“题目大意”) 卡点:无 C++ Code: #include <cstdio> #include <cstrin
阅读全文
摘要:题目大意:多组数据,每组数据给一张图,多组询问,每个询问给一个点集,要求删除一个点,使得至少点集中的两个点互不连通,输出方案数 题解:圆方树,发现使得两个点不连通的方案数就是它们路径上的圆点个数。如何处理重复?可以按圆方树的$dfn$序排序,相邻两点求一下贡献,这样贡献就被重复计算了两次,除去$k$
阅读全文
摘要:题目大意:有$2^n$个人,每相邻的两个人比赛一次。令两个人的编号为$a,b(a\leqslant b)$,若$a\neq 1$,则$a$的人获胜;否则若$b\in S$则$b$获胜,不然$1$获胜。钦定$1$获胜,问可以的开始的顺序的方案数 题解:状压$DP$,令开始的第$i$位的人的编号为$p_
阅读全文
摘要:题目大意:给定一个字符串,求一个最短的串要求没有在该字符串的子串中出现过,如果有多个,输出字典序最小的那一个。 题解:倒着跑一遍原字符串(以下编号为$1\sim n$),按出现了所有$26$个字母来分段,把完整的段从左到右编号,第$i$段为$[l_i,r_i]$,答案的长度就是分成的完整的段$+1$
阅读全文
摘要:题目大意:有一个$n\times m$的$01$矩阵,可以把任意行或列反转,问最大的全为一的子矩阵的面积 题解:有一个结论:若一个子矩形$S$中的任意一个$2\times 2$的子矩形都含有偶数个$1$,则存在一种操作使得$S$中全为$1$。 就令四个点亦或值为$0$的格子(有偶数个$1$)的左上角
阅读全文
摘要:题目大意:有一个$n$位的数,设第$i$位为$a_i$(最高位为$a_1$)。问满足$(\sum\limits_{i=2}^n(a_i-a_{i-1}))==k$的数的个数(不含前导零) 题解:发现$(\sum\limits_{i=2}^n(a_i-a_{i-1}))==k\Leftrightarr
阅读全文
摘要:题目大意:有$4n$个硬币,放在$2n$个位置(即放成两排),有两个人,轮流取。第一个人取上面的,第二个人取下面的,每个人只可以取两个人都没取过的位置。若硬币正面向上,为$1$,反面为$0$。把取得的硬币按取得顺序排成一列,这个二进制数大的人赢,为有没有先手必胜策略。 题解:贪心,一定是先取正面向上
阅读全文
摘要:题目大意:给你一个长度为$2n$的括号序列,保证$n$个`(`,$n$个`)`。要求输出一种可行方案,通过小于等于$n$的步数,每次交换区间$[x_i,y_i]$(立即交换),使得最后括号序列合法 题解:找到第一个`)`和最后一个`(`,交换 卡点:看成读入后一起交换 C++ Code:
阅读全文
摘要:题目大意:给一棵$n$个节点的树,每个点有一个值$C_i$,每次询问一条路径$x->y$,求$\sum\limits_{c}val_c\times \sum\limits_{i=1}^{cnt_c}worth_i(cnt_c=\sum\limits_{i\in(x->y)}[C_i==c])$。带修
阅读全文
摘要:题目大意:有一棵$n$个节点的树,第$i$个点有一个颜色$C_i$,$m$组询问,每次问$x->y$的路径上有多少种颜色 题解:树上莫队,把树按欧拉序展开成一条链,令第$i$个节点第一次出现在序列中为$in_i$,第二次为$out_i$,每一个询问就是看$in_x->in_y$中只出现一次的节点的颜
阅读全文
摘要:题目大意:给一串长度为$n$的数字,求出其中最长的至少出现$k(2\leqslant k\leqslant n)$次的字段,输出长度 题解:$SAM$后$DP$ 卡点:多处数组未开两倍 C++ Code:
阅读全文
摘要:题目大意:给你$n,m,p(p \in \rm prime)$,求出$C_{n + m}^m\bmod p(可能p\leqslant n,m)$ 题解:卢卡斯$Lucas$定理,$C_B^A\bmod p$等于把$A,B$写成$p$进制时每一位的组合数相乘,设$A=a_n\times p^n+a_{
阅读全文
摘要:题目大意:给你一个字符串,求出它的最长回文字段 题解:$manacher$算法 卡点:$p$数组未开两倍空间 C++ Code:
阅读全文
摘要:题目大意:给你一个长度为$n$的序列,要求出长度大于等于$len$的字段的中位数中最大的一个中位数 题解:可以二分答案,对于比它小的数赋成$-1$,大的赋成$1$。求前缀和,若有一段区间的和大于$0$,说明这个数可以作为中位数。因为长度要大于等于$len$,所以可强制长度大于等于$len$。 如何求
阅读全文
摘要:题目大意:有$n$个数,有$m$个操作,有三种: (线段树2就是先读入$n\;m\;p$,再读入序列;本题是先读入$n\;p$,读入序列,再读入$m$,双倍经验) 题解:线段树,把$lazy\_tag$变成两个,分别记录区间加和区间乘,注意乘法的优先级比加法高 卡点:无(我以前写的是什么代码啊?)C
阅读全文
摘要:题目大意:有$n$个点,每个点有一个距离(从小到大给出),从第$i$个点跳一次,会跳到距离第$i$个点第$k$远的点上(若有两个点都是第$k$远,就跳到编号小的上)。问对于从每个点开始跳,跳$m$次,最后会到哪个点 题解:难点主要在处理第$k$远上(跳只需要一个类似快速幂的东西就好了,也就是倍增)。
阅读全文
摘要:题目大意:给定一个$n$个点$m$条边有向图,第$i$个点有权值$w_i$,求一条路径,使路径经过的点权值之和最大,输出点权和,(多次经过一个点只算一次点权) 题解:$tarjan$缩点+$DP$ 卡点:1.多处$i,j$打错 2.要求找到一条路径,看成了终点必须为$n$ C++ Code:
阅读全文
摘要:题目大意:有一棵树,第$i$个点的点权为$s_i(s_1>0)$。初始有每个点都是亮的。$m$次修改,每次改变一个点的亮暗,回答包含$1$的全亮的连通块中点权和最大的连通块的和的值。题解:正解不怎么会(我只打了一遍代码),这里是$97$分代码(复杂度$O(n^2log_2n)$,暴力复杂度$O(n^
阅读全文
摘要:题目大意:有一串长度为$n$的序列,为$1\sim n$的一个排列,五个操作: 题解:平衡树维护序列 卡点:无 C++ Code:
阅读全文
摘要:题目大意:有两个序列$a$和$b$,每个分别有$n(n\leqslant10^4)$个元素,序列$a$中的数为$0\sim n-1$的一个排列。$T_i$为$(a_i+b_i)\bmod n$或者$(a_i-b_i)\bmod n$。要求使得$\displaystyle\bigcup\limits_
阅读全文
摘要:题目大意:有一张$n$个点,$m$条边的无向图,第$i$条边有权值$a_i,b_i$,求一条$1$到$n$的路径,使得这条路径上$\max\{a_i\}+\max\{b_i\}$最小 题解:先想到二分,然而两个权值,有没有关键字先后顺序的二分我并不会。。。 然后发现,可以先按$a_i$把每条边排序,
阅读全文
摘要:题目大意:有$n$个数,两个操作 题解:把每个$p\leqslant \sqrt n$的答案预处理出来,复杂度$O(n\sqrt n)$。对于$p>\sqrt n$的询问怎么办呢?暴力算,复杂度是$O(n\dfrac{n}{p})$,因为$p>\sqrt n$,所以$\dfrac n p <\sqr
阅读全文
摘要:题目大意:有$n$支画笔,有两个操作 题解:带修莫队,分为$n^{\frac{1}{3}}$个块,每个块$n^{\frac{2}{3}}$个元素,复杂度$O(n^{\frac{5}{3}})$ 卡点:读入时,修改的时间赋值错 C++ Code:
阅读全文
摘要:题目大意:有$n$个任务,第$i$个任务存在于$[l_i,r_i]$,优先级为$p_i$,$m$个询问,每个问在$x_i$时刻时,优先级最小的$k$个的优先级的和是多少。 题解:离散化优先级,前缀和主席树即可 卡点:1~4.数组开小一倍,$root$数组未连续 C++ Code:
阅读全文
摘要:题目大意:三合一,给你$y,z,p$,求$x$,三种询问 题解:求快速幂,逆元和$BSGS(离散对数)$$BSGS$就是用分块的思想,令$m=\lceil \sqrt p\rceil$,因为$y^{i\times m+j}=y^{i\times m}\times y^j$所以可以预处理$y^i$(用
阅读全文
摘要:题目大意:有一段数列,有两个操作 题解:线段树,记录区间最大前缀,最大后缀,区间和以及区间的答案卡点:1.题目说可能$a\geqslant b$C++ Code:
阅读全文

浙公网安备 33010602011771号