09 2021 档案
摘要:题意:有一长度为$n$的$01$序列,每次可以将序列元素右移$d$个单位,然后原序列和新序列每个元素取&,问你最少操作多少次使得序列所有元素都为$0$,或者不存在. 题解:对于大小为$1$的位置,它一定只能被某个是$0$的位置移动过来变成$0$,所以我们考虑$0$的位置,移动后的新位置为$(i+d)
阅读全文
摘要:题意:有一长度为$n$的序列,正向遍历,对于第$i$个元素,可以将其插入deque的队头或者队尾,问你最终得到deque后,逆序对最少是多少? 题解:假如将当前这个数插入队头,那么新增的逆序对就是$[2,len]$中小于$a[i]$的个数,插入队尾也是同理,结合逆序对的求法,我们可以用线段树分别求出
阅读全文
摘要:AtCoder Beginner Contest 220 A - Find Multiple 水题 B - Base K 水题 C - Long Sequence 题意:有长度为$n$的序列$A$,$B$由连续$10^{100}$个$A$拼接而成,给你一个$X$,问你$B$的最小的前缀和位置$k$,
阅读全文
摘要:题意:一个长度为$n$的序列$x$,$m$次操作,有两种,一种是对区间$[l,r]$的数乘上$w$,一种是询问$[l,r]$的每个数的欧拉函数之和。 题解:首先看数据范围,$x[i]$和$w$的值都很小,最大才$100$,根据欧拉函数公式:\(\phi [N]=N*(1-\frac{1}{p_1})
阅读全文
摘要:题意:有2行,每行$n$个点,给你$m$个连接上下两行的边,问你最对能选多少条边,这些边互不相交。 题解:先固定选上面或者下面一行作为起点去遍历,假设选下面一行,我们从头开始遍历,假设遍历到$i$个点时,枚举它的所有出边$to$,假设这条边的终点为$j$,设$dp[j]\(表示区间\)[1,j]$的
阅读全文
摘要:题意:有一场编程比赛,有2题$A$和$B$,$n$个人参加,每2个人组一队,每个人解决$A$的罚时为$x_i$,解决$B$的罚时为$y_i$,每个人只能写一题。现在还有$m$个关系,表示$i$不想和$j$组队,问你每个人,除了和他不想组队的人,和其他每个人组队写完两题的最小罚时之和。 题解:任选两个
阅读全文
摘要:题意:一个$2$x$n$的矩阵,每个格子可以涂成黑色或者白色,现在问你全部涂完后,连通块个数为$k$个一共有多少方案数 题解:每一列总共有$4$种情况,白白,黑白,白黑,黑黑,设$dp[i][j][k]$表示第$i$列,涂第$j$种情况,涂完后连通块个数$k$的情况数,那么很容易从前一列的状态转移过
阅读全文
摘要:题意:给你$n$个ip地址,以及长度和它所对应的next ip地址,有$m$个询问,在$n$个给定的ip地址中找到公共前缀大于所给长度并且最长的对应ip地址。(疯狂口胡) 题解:每个ip地址有四个数,我们将其变成一个32位的数,然后建一颗trie树,直接找就行了。。。 代码: #include <b
阅读全文
摘要:题意:有$k$个机器,下标$[0,k-1]$,现在有$n$个任务,每次给你起始时刻和持续时间,第$i$个任务从第$i\mod k$个机器开始,如果当前机器没有任务在进行,则执行这个任务,否则去找$(i+1)\mod k$,....,如果所有机器都在执行任务,则忽略这个任务,所有任务询问完后,问你哪些
阅读全文
摘要:题意:一本书有$n$个chapters,想要读懂某个chapter需要先读懂其他chapters,你每次只能从第一章读到最后一章,问你最少读多少次可以将所有chapters都读懂。 题解:对某个chapter,我们从它所需要读懂的chapter连一条有向边到它,不难发现,某个chapter能读懂,当
阅读全文
摘要:题意:有$n$个序列,每两个数之间可以放$+\(和\)-\(,但是不能存在两个及以上的\)-$,写出全部不同的多项式,求这些多项式的和。 题解:设$dp[i][0/1]$表示前$i$个数并且当前符号为$+\(和\)-\(的情况,先不考虑\)+/-$第$i$个数的情况,那么很明显$dp[i][0]=d
阅读全文
摘要:题意:一棵$n$个点$m$条边的树,每个点都有点权,如果某个点被标记了,那么这个点和它相邻的点会被覆盖,贡献是被标记的这个点的点权,问将所有点覆盖需要花费的最小代价。 题解:首先,这题不能和树形dp的模板题等同,因为假如有一颗树$1-2-3-4$,我们把$1,4$标记,那么$1,2,3,4$就全被我
阅读全文
摘要:题意:你的键盘有$k$个按键,矩阵$T_{i,j}$,表示第$i$个键和第$j$个键之间的输入频率,并带有一个$L$的修正,$T$的每一行都是非递减的,现在你忘了你的密码,但是你知道你密码的相邻两个字符的输入频率,你需要构造一个序列,这个序列需满足$T_{S_i,S_{i+1}}-L \le P_i
阅读全文
摘要:题意:一颗$n$个点的树,定义bud为某个点至少有一个儿子,所有儿子均为叶子结点且这个点不为根,你可以将任意一个bud和它的所有儿子移动到另外一个顶点上,可以操作任意次,问最后的叶子结点数最少是多少. 题解:假如我们将一个bud移到另一个叶子结点上后,bud的父亲变成了一个叶子结点,那么会发现,总叶
阅读全文
摘要:A - Weather Forecast 水题 B - qwerty 水题 C - Shapes 不想写模拟,555 D - Rectangles 题意 :二位坐标轴上有$n$个点,问你能构造多少和坐标轴平行的矩形. 题解:暴力枚举左上和右下,用map存一下每个点是否出现。 代码: #include
阅读全文
摘要:题意:每次骑车花费$r$,有$n$张优惠券,每张优惠卷花费$c_i$,使用后可以在之后的$d_i$天内免费骑车$k_i$次,$m$个需求,表示在$p_i$这一天要骑$q_i$次,问你最少花费多少钱满足条件。 题解:首先用将次数和天数对应起来,然后遍历次数,设$dp[i]$表示总共骑了$i$次的最少花
阅读全文
摘要:题意:一张$n$个点的完全图,删去$m$条边,一共走$k$步,问你从起点出发再回到起点一共有多少种方案? 题解:设$dp[i][j]$表示走了$i$步,以$j$为终点的方案数,那么状态转移为$dp[i+1][u]=\sum_{v\in edge[u]} dp[i][v]$. 此时的代码为(注意此时的
阅读全文
摘要:题意:在二维平面上,分布着很多矩阵,这些矩阵是陷阱,有一只兔子每次固定向四周四个方向跳$d$个单位,问你是否存在一个起点,使得兔子无论怎么跳都不跳到陷阱中。 题解:因为兔子固定跳$d$个单位,因此具有周期性,也就是说,假如它的起点是$d$x$d$的矩阵的某一点,那么它无论跳到什么位置,该位置都能和初
阅读全文
摘要:题意:交互题,有一组长度位$n$的数,你最多可以询问$2*n$次,每次可以询问两个位置$i$和$j$,问他们的and或or值,求数组中第$k$大的数. 题解: 对于两个数$a$和$b$,\(a\)&$b$和$a$|\(b\),不难发现$a+b$=\(a\)&\(b\)+\(a\)|\(b\).因为$
阅读全文
摘要:题意:一棵$n$个顶点的树,定义一次删点是”美丽的“,如果删去某个点后,树的每个点都有边,问有多少种”美丽的“删点方式。 题解:对于某个点父亲结点$u$,考虑它的儿子和子树。 定义$f[u][0/1/2]$分别表示$u$的三种形式: 0:删去$u$这个结点,并且保证删去后所有子树都是合法的。 1:不
阅读全文
摘要:传送门 A - Blood Pressure 水题 B - Cycle Hit 水题 C - chokudai 题意:给你一个字符串$S$,问你有多少子序列能构成$chokudai$,答案$\mod 1e9+7$. 题解:根据每个连续性,当遍历到某个字符时,状态一定只从它在模板串的上一个字符转移过来
阅读全文
摘要:题意:给你一个数$x$,每次有两种操作可以选择,一是从$x$跳到$[1,x-1]\(的任意一个数,二是跳到\)\lfloor \frac{x}{z} \rfloor\ \ (z \in[2,x])$.问你从$x$到一有多少种方案. 题解:假设$S(x)$为$x$能到达的所有位置的贡献$f(i)$集合
阅读全文
摘要:题意:有一长度为$n$的字符串,+表示1,-表示-1,字符串的子区间$[l,r]$的贡献为,\(a_l-a_{l+1}+a_{l+2}-a_{l+3}...\),$q$次询问,每次询问一个区间,问最少删去几个位置的字符是的区间贡献为$0$,输出答案和删去的位置。 题解:首先,假如区间贡献为$0$那么
阅读全文
摘要:题意:有一张$n$个点,$m$条边的无向图,每条边都有边权,$q$个询问,每次问一个$q_i$,将所有边权减去$p_i$后不小于$0$的边为有效边,问有多少对点能相互到达。 题解:一张图,两个点连通,不难想到最小生成树,进而想到保留边权最大的边最优,即转化成了最大生成树,那么我们就可以将询问离线存下
阅读全文