返回顶部

01 2021 档案

摘要:题意:给你一个只含$+\(和\)-$的字符串,给你一个数$x$,$x$初始为$0$,随着字符串的遍历会加一减一,现在有$m$个询问,每个询问给出一个区间$[l,r]$表示将这个区间内的字符串去除,得到新的字符串,问遍历新字符串后,$x$取到的值最多有多少. 题解:这题的关键是,$x$的值是一一变化的 阅读全文
posted @ 2021-01-29 01:54 _Kolibri 阅读(56) 评论(0) 推荐(0)
摘要:题意:有一堆石子,你每次可以选择相邻(就算两堆石子中间有很多空堆也不算)的两堆石子,使得两堆石子的个数同时$-1$,你在刚开始的时候有一次交换相邻石子的机会,问你最后能否拿走所有石子. 题解:对于第一堆石子和最后一堆石子,它们只能靠第二堆石子和倒数第二堆石子减去才合法,所以我们由第一堆石子不断向右推 阅读全文
posted @ 2021-01-29 01:35 _Kolibri 阅读(49) 评论(0) 推荐(0)
摘要:题意:给你一组数,问你最少删去多少数,使得剩下的数,每个数都能整除数组中其它某个数或被数组中其它某个数整除. 题解:我们直接枚举所有因子,$dp[i]$表示$i$在数组中所含的最大因子数(当我们枚举到$i$时),然后用$dp[i]$更新以$i$作为因子的更大的数,注意,更新的时候$dp[j]=max 阅读全文
posted @ 2021-01-29 01:01 _Kolibri 阅读(60) 评论(0) 推荐(0)
摘要:题意:给你一个矩阵$a$和$b$,你可以对$a$的任意一行或任意一列的所有元素xor$1$任意次,问最终是否能够得到$b$. 题解:由$a\ xor\ b=c$,可得:\(a\ xor \ c=b\),根据线性代数的知识我们只需要判断$c$是否能由零矩阵通过上述变换得来即可.因为$a\ xor\ c 阅读全文
posted @ 2021-01-29 00:48 _Kolibri 阅读(68) 评论(0) 推荐(0)
摘要:题意:你的手机有$n$个app,每个app的大小为$a_i$,现在你的手机空间快满了,你需要删掉总共至少$m$体积的app,每个app在你心中的珍惜值是$b_i$,$b_i$的取值为$1$或$2$,现在问你至少删掉体积$m$的app的最小珍惜值是多少,如果不能满足条件,输出$-1$. 题解:因为$b 阅读全文
posted @ 2021-01-29 00:31 _Kolibri 阅读(81) 评论(0) 推荐(0)
摘要:题意:有$n$个数,首先任选一个正整数$x$,然后在数组中找到两个和为$x$的数,然后去掉这两个数,$x$更新为两个数中较大的那个.问你最后时候能把所有数都去掉,如果能,输出最初的$x$和每次去除的两个数. 题解:首先现将数组排序,我们每次肯定都是要用数组中当前最大的数和其他数进行组合,这很容易证明 阅读全文
posted @ 2021-01-20 23:27 _Kolibri 阅读(190) 评论(0) 推荐(0)
摘要:题意:对于一个数$x$,有函数$f(x)$,如果它是偶数,则$x/=2$,否则$x-=1$,不断重复这个过程,直到$x-1$,我们记$x$到$1$的这个过程为$path(x)$,它表示这个过程中所有$x$的值,现在给你一个数$n$和$k$,要你找出最大的数$x$,并且$x$在$path[1,n]$中 阅读全文
posted @ 2021-01-20 19:06 _Kolibri 阅读(92) 评论(0) 推荐(0)
摘要:题意:有三个背包,每个背包里都用一些数字,你可以选择某一个背包的数字$a$,从另外一个背包拿出$b$(拿出之后就没有了),然后将$a$替换为$a-b$,你可以进行任意次这样的操作,使得最后只剩下一个数,问这个数最大能是多少. 题解:我的思路是,先任意选两个背包,假设$x$和$y$,我们假设选$x$中 阅读全文
posted @ 2021-01-19 15:15 _Kolibri 阅读(107) 评论(0) 推荐(0)
摘要:题意:有一张有向图,每个点的权值为点$1$到该点的最短距离(每条边的长度为$1$),对于一条路径,这条路径上最多只能有一条边,这条边起点的权值不小于终点,现在要求每个点能到达路径上的点的最小权值. 题解:首先我们先用bfs求出每个点的权值,并且在求的同时用桶将点存起来,方便之后枚举权值的时候用,然后 阅读全文
posted @ 2021-01-19 14:49 _Kolibri 阅读(103) 评论(0) 推荐(0)
摘要:题意:给你两个字符串$a$和$b$,找出它们的$lcm$,即构造一个新的字符串$c$,使得$c$可以由$x$个$a$得到,并且可以由$y$个$b$得到,输出$c$,如果$c$不存在,输出$-1$. 题解:我们可以根据$a$和$b$的长度得出$c$的长度$len_c$,而$len_c$一定是$len_ 阅读全文
posted @ 2021-01-17 16:27 _Kolibri 阅读(188) 评论(0) 推荐(0)
摘要:题意:有$n$个点,$m$条单向边,保证每条边的起点小于终点,每个点都有权值,找到联通的点的两个点的最大差值. 题解:因为题目说了起点小于终点,所以我们可以反向存边,然后维护连通边的前缀最小值,如果当前点的入度不为$0$,则更新答案. 代码: #include <bits/stdc++.h> #de 阅读全文
posted @ 2021-01-17 15:45 _Kolibri 阅读(119) 评论(0) 推荐(0)
摘要:题意:你需要订阅一些服务,每个服务每天需要花费$c_i$,要从第$a_i$用到第$b_i$天,你可以购买会员,会员每天需要花费$C$,但是这天的服务不用再另花钱了,问你订阅这些服务的最小花费是多少. 题解:对于这种某一段区间的加加减减的问题,我们首先应该考虑的是用差分,我们可以用map来做差分数组, 阅读全文
posted @ 2021-01-16 14:16 _Kolibri 阅读(143) 评论(0) 推荐(0)
摘要:题意:有$2^n$个人站成一排比赛,刚开始每个人都和自己右边的人进行比赛,赢得人晋级下一轮(下标的小的在前面),不断重复这个过程,问最后拿到第二名的人的编号. 题解:根据题意,可以用vector直接模拟这个过程. 代码: #include <bits/stdc++.h> #define ll lon 阅读全文
posted @ 2021-01-16 14:04 _Kolibri 阅读(142) 评论(0) 推荐(0)
摘要:题意:有来两个人A和B,A追B,A和B每次向上下左右移动一个单位,一共有两扇门,问A是否可以追上B(在门口追上也算合法). 题解:当时看题意说在门口也算?就觉得是判断两个人到门口的时间,对他们两个人分别跑bfs,记录他们到每个门口的步数,然后if判断一下即可. 代码: #include <bits/ 阅读全文
posted @ 2021-01-04 09:33 _Kolibri 阅读(148) 评论(0) 推荐(0)