随笔分类 - 思维
摘要:题意:有一场编程比赛,有2题$A$和$B$,$n$个人参加,每2个人组一队,每个人解决$A$的罚时为$x_i$,解决$B$的罚时为$y_i$,每个人只能写一题。现在还有$m$个关系,表示$i$不想和$j$组队,问你每个人,除了和他不想组队的人,和其他每个人组队写完两题的最小罚时之和。 题解:任选两个
阅读全文
摘要:题意:一颗$n$个点的树,定义bud为某个点至少有一个儿子,所有儿子均为叶子结点且这个点不为根,你可以将任意一个bud和它的所有儿子移动到另外一个顶点上,可以操作任意次,问最后的叶子结点数最少是多少. 题解:假如我们将一个bud移到另一个叶子结点上后,bud的父亲变成了一个叶子结点,那么会发现,总叶
阅读全文
摘要:题意:有一长度为$n$的字符串,+表示1,-表示-1,字符串的子区间$[l,r]$的贡献为,\(a_l-a_{l+1}+a_{l+2}-a_{l+3}...\),$q$次询问,每次询问一个区间,问最少删去几个位置的字符是的区间贡献为$0$,输出答案和删去的位置。 题解:首先,假如区间贡献为$0$那么
阅读全文
摘要:题意:有$n$条直线,A每次选$1,2,...,n$条直线,B每次画一条直线,答案是B画的直线和A选的直线的相交数,现在A想要最大化答案,B想要最小化答案,问每次选$1,2,...,n$条直线的答案是多少. 题解:首先能想到的是A肯定要选彼此不平行的直线,B肯定要选平行最多的直线画一条和它们斜率相同
阅读全文
摘要:题意:有一个$n$x$n$的矩阵,有$m$个单位有权值,其他单位均为空,给你两个数组$a$和$b$,$a[i]$表示第$i$行的最大元素,$b[i]$表示第$i$列的最大元素,你需要在这$m$个单位中填值,在满足$a$和$b$数组的条件下求矩阵最小$sum$. 题解:将最大值为$k$的$a[i]$和
阅读全文
摘要:题意:有$n$x$m$的棋盘,将任意一个格子涂成黑色花费$c_{i,j}$,任选两行两列,取相交的四个格子,如果其中三个是黑色,则另外一个可以免费涂成黑色,问将整个棋盘涂黑的最小花费. 题解:对于任选两行两列取四个格子这个条件,假如我们已经涂了三个格子,那么这三个格子的横纵坐标一定是连通的,假如我们
阅读全文
摘要:题意:有一张$n$个点的完全图,每条边为黑色或者白色,问你最多有多少三条边都是同色的三角形. 题解:比赛时没想到,队友写的.8000个点,正面硬写的话只有$O(n^3)$这种暴力方法,肯定不行.不妨反着来看,考虑有多少不合法的三角形,不合法的三角形一定有两条同色边和一条异色边,这样的话我们在找不合法
阅读全文
摘要:题意:有一组排列$a=[1,2,3,...,n]$,可以将排列的所有元素向右移动$k$个位置,然后选任意两个元素交换位置,最多交换$m$次,现在给你操作完成后的序列,问你有多少种可能的$k$值,使得原排列能得到现在的序列. 题解:将所有$a[i]$--,这样在每个元素移动$k$个位置后,得到$a[i
阅读全文
摘要:题意:有一个$n$个结点的树,给你$n-1$个$a_i$和$b_i$,表示将第$i$条边断开后两个连通块中的最大顶点,现在要你根据给出的信息还原出这颗树. 题解:首先无论怎么分,$a_i$和$b_i$中一定有一个是的值是$n$.然后我们将顶点排序,按照$n$为根结点来构造.那么序列中出现次数最少的那
阅读全文
摘要:题意:给你一个字符串,选择一个前缀,使其不断复制,直到$len>=k$,如果$len>k$,删去多余的尾部,问你能得到的字典序最小的字符串. 题解:基本思路和E1一样,比较后面的字符和$s[1]$,大于就直接break,小于就继续,等于的话,我们要先找到$s_{1...x}$和$s_{i,i+1,.
阅读全文
摘要:题意:有一颗树,根结点为$1$.$q$个询问,每次问你共有多少经过$u$点且到根节点距离为$d$的点. 题解:这题技巧性好强,我们从根节点遍历整颗树,用时间轴记录搜到和离开的时间$in_i$和$out_i$,同时存入同一深度的所有$in_i$,方便后面计算.对于某个父亲结点$u$,它的一个子树结点为
阅读全文
摘要:题意:有$n$个龙珠在坐标轴上,你每次可以询问一个坐标,返回给你距离你坐标最近的龙珠的距离的平方,当这个距离等于$0$时,说明找到一颗龙珠. 题解:这题主要有两个点: 1.首先询问$(0,0)$,可以确定一颗龙珠的距离 2.对于这个距离,我们枚举$x$的可能坐标,然后因为距离固定,可以得到$y$的坐
阅读全文
摘要:题意:有$2n$个数,要凑$n$个坐标出来,使得这些坐标全部落在一个矩形内部,问你最小的矩形面积是多少. 题解:这种题一般都是将横纵坐标分开看,首先,矩形的面积=\((max(x)-min(x))\)*\((max(y)-min(y))\).对坐标排序,根据最值原理,“和一定,差大积小”,所以我们可
阅读全文
摘要:题意:对于两个数$u$和$v$,如果$u$&\(v\)=\(v\),那么就代表$u$可以走到点$u+v$,现在你可以对任意两个数进行操作,给你$q$个询问,每次问你$u$是否可以走到$v$. 题解:其实不难发现,如果$u$&\(v\)=\(v\),那么$v$一定是不大于$u$的,并且$v$对应二进制
阅读全文
摘要:题意:给你一个只含$+\(和\)-$的字符串,给你一个数$x$,$x$初始为$0$,随着字符串的遍历会加一减一,现在有$m$个询问,每个询问给出一个区间$[l,r]$表示将这个区间内的字符串去除,得到新的字符串,问遍历新字符串后,$x$取到的值最多有多少. 题解:这题的关键是,$x$的值是一一变化的
阅读全文
摘要:题意:有一堆石子,你每次可以选择相邻(就算两堆石子中间有很多空堆也不算)的两堆石子,使得两堆石子的个数同时$-1$,你在刚开始的时候有一次交换相邻石子的机会,问你最后能否拿走所有石子. 题解:对于第一堆石子和最后一堆石子,它们只能靠第二堆石子和倒数第二堆石子减去才合法,所以我们由第一堆石子不断向右推
阅读全文
摘要:题意:给你一个矩阵$a$和$b$,你可以对$a$的任意一行或任意一列的所有元素xor$1$任意次,问最终是否能够得到$b$. 题解:由$a\ xor\ b=c$,可得:\(a\ xor \ c=b\),根据线性代数的知识我们只需要判断$c$是否能由零矩阵通过上述变换得来即可.因为$a\ xor\ c
阅读全文
摘要:题意:你的手机有$n$个app,每个app的大小为$a_i$,现在你的手机空间快满了,你需要删掉总共至少$m$体积的app,每个app在你心中的珍惜值是$b_i$,$b_i$的取值为$1$或$2$,现在问你至少删掉体积$m$的app的最小珍惜值是多少,如果不能满足条件,输出$-1$. 题解:因为$b
阅读全文
摘要:题意:有三个背包,每个背包里都用一些数字,你可以选择某一个背包的数字$a$,从另外一个背包拿出$b$(拿出之后就没有了),然后将$a$替换为$a-b$,你可以进行任意次这样的操作,使得最后只剩下一个数,问这个数最大能是多少. 题解:我的思路是,先任意选两个背包,假设$x$和$y$,我们假设选$x$中
阅读全文
摘要:题意:给你两个字符串$a$和$b$,找出它们的$lcm$,即构造一个新的字符串$c$,使得$c$可以由$x$个$a$得到,并且可以由$y$个$b$得到,输出$c$,如果$c$不存在,输出$-1$. 题解:我们可以根据$a$和$b$的长度得出$c$的长度$len_c$,而$len_c$一定是$len_
阅读全文