随笔分类 - Codeforces
摘要:题意:商店里有$k$个包裹,第$i$个包裹中含有$i$个物品,现在想要买$n$物品,你可以选择某一个包裹购买任意次,使得物品数刚好等于$n$,求最少的购买次数. 题解:首先,假如$k\ge n$,那么只用买一次.否则,我们枚举$1$~\(\sqrt n\),若$n\ mod\ i=0$: 1.\
阅读全文
摘要:题意:你有$n$天的时间,这段时间中你有$m$长考试,$s$表示宣布考试的日期,$d$表示考试的时间,$c$表示需要准备时间,如果你不能准备好所有考试,输出$-1$,否则输出你每天都在干什么,如果这一天你有考试,输出$m+1$,如果你要准备第$i$场考试,输出$i$,否则休息,输出$0$. 题解:数
阅读全文
摘要:题意:有一个长度为$n$的序列$a$,求这个序列中有多少比$a_$小的数,如果某两个位置上的数有矛盾,则不能算小. 题解:用$pair$来记录序列中元素的位置和大小,将他们升序排序,对于每对矛盾的位置,只记录$a[u]>a[v]$的情况,小于等于的情况没必要考虑,然后我们遍历排序后的序列,二分查找第
阅读全文
摘要:题意 :有一个长度为$n$的序列,可以对所有元素++或 ,求最少的操作次数,如果无论如何都不能构成,则输出$ 1$. 题解 :一个等差数列一定由首项$a_{1}$和公差$d$来决定,而这两项可以有$a_{1}$和$a_{2}$来决定,所以我们可以直接暴力枚举$a[1]$和$a[2]$,一共$9$种情
阅读全文
摘要:题意:有个$n$个公寓,每个公寓$a_$代表着编号为$1-a_$个房间,给你房间号,问它在第几栋公寓的第几个房间. 题解:对每个公寓的房间号记一个前缀和,二分查找属于第几个公寓,然后求个差即可. 代码: #include <iostream> #include <cstdio> #include <
阅读全文
摘要:题意:给你一个长度为$n$的序列,求一个最长的${x,x+1,x+2,.....,x+k-1}$的序列,输出它的长度以及每个数在原序列的位置. 题解:因为这题有个限定条件,最长序列是公差为$1$的单增序列,所以其实非常简单. 我们用$map$来记录每个元素最后出现的位置,$dp$表示当前位置的最
阅读全文
摘要:题意:给你$n$个顶点和$m$条边,问它们有多少个单环(无杂环),例如图中第二个就是一个杂环. 题解:不难发现,如果某几个点能够构成单环,那么每个点一定只能连两条边.所以我们先构建邻接表,然后从某个数开始跑dfs,如果这一边所有点的度数都为$2$,那么就能构成一个单环. 代码: #include <
阅读全文
摘要:题意:给你一个长度为$n$的序列$a$.对它重新排列,使得$a_{i+1}=a_/3$或$a_{i+1}=2*a_$.输出重新排列后的序列. 题解:经典DFS,遍历这个序列,对每个数dfs,每次dfs使$len+1$,当$len=n$时,说明这个序列已经满足条件了,输出并且标记一下,防止还有另外的情
阅读全文
摘要:题意:有一个长度为$n$的序列,要求在$[1,10^9]$中找一个$x$,使得序列中恰好$k$个数满足$\le x$.如果找不到$x$,输出$-1$. 题解:先对这个序列排个序,然后首先要注意$k=0$的情况 如果$k=0$并且序列中含有$1$,那么我们无论如何都找不到比$1$小的数,输出$-1$,
阅读全文
摘要:题意:给你$n$个数,每次可以使某个数++,--,或使某个数--另一个++,分别消耗$a,r,m$.求使所有数相同最少的消耗. 题解:因为答案不是单调的,所以不能二分,但不难发现,答案只有一个峰,所以我们可以三分高度,然后写个check函数贪心一下即可. 代码: #include <iostream
阅读全文
摘要:题意 :有一个长度为$n$的数组,问能否通过多次使某个区间的所有元素变成这个区间的中位数,来使整个数组变成题目所给定的$k$. 题解 :首先这个$k$一定要在数组中存在,然后我们对中位数进行考虑,对于一个长度$ 1$的数组来说,起码要有$2$个$\ge k$的数,才能使得$k$是某个区间的中位数,然
阅读全文
摘要:题意:给你四个正整数$A,B,C,D$,且$A\le B\le C \le D$,有$A\le x\le B\le y\le C \le z\le D$,求最多有多少组$(x,y,z)$能构成三角形. 题解:这题数据范围最大是$5*10^5$,所以我们肯定不能枚举$x,y$,但是由于题目限定我们知道
阅读全文
摘要:题意:给你两个正整数$N$和$S$,构造一个长度为$N$并且所有元素和为$S$的正整数数组,问是否能找到一个$K (0\le K \le S)$使得这个数组的任意_子数组_的和都不等于$K$或$S-K$,如果存在则输出YES,并且输出这个数组和$K$,不存在则输出$NO$. 题解:这类题写多了其实就
阅读全文
摘要:题意:给你一组人$a$,现在要将这些人进行分组,对于$i$,只有某一组的人数$\ge a_$时,$i$才可以加入这个组,问最多能够有多少组,(不必将所有人都选用). 题解:我们将所有$a_\(相同的用一个桶存一下,然后升序遍历这个桶,假如桶里面的人数\)\ge a_\(,那么它们就能够组成一组,之后
阅读全文
摘要:题意:给你一个体积为$T$的背包,有$n$个物品,每个物品的价值和体积都是是$a_$,求放哪几个物品使得总价值最大,输出它们,并且输出价值的最大值. 题解:其实就是一个01背包输出路径的裸题,直接上板子就行了.(一维的背包写法其实还是不太怎么怎么理解,具体的以后再补). 代码: #include <
阅读全文
摘要:题意:给你5个$A,B,C,D,E$大小关系式,升序输出它们,如果所给的大小矛盾,输出$impossible$. 题意:当时第一眼想到的就是连边然后排序,很明显是拓扑排序(然而我不会qwq,之后再补),但貌似可以直接暴力来写,用二维数组来记录两个数之间的大小关系,如果一维$>$二维就记录true,然
阅读全文
摘要:题意:有一个长度为$n$元素均为$0$的序列,进行$n$次操作构造出一个新序列$a$:每次选择最长的连续为$0$的区间$[l,r]$,使得第$i$次操作时,\(a[\frac{l+r}{2}]=i\)(下取整),求$a$. 题解:刚开始我打算用归并分治的思想来写,但是发现左区间递归不到,然后就gg了
阅读全文
摘要:题意:给你一个数列,求所有子序列对的$lcm$,然后求这些所有$lcm$的$gcd$. 题解:我们对所有数分解质因数,这里我们首先要知道一个定理: 对于$n$个数,假如某个质数$p$,这$n$个数中有$\le n-1$个数的质因数包含$p$,那么他们的$lcm$中一定不含$p$这个因数,随意我们
阅读全文
摘要:题意:有一个长度为$n$的序列$a$,求一个最长上升子序列,且这个子序列的元素在$a$中的位置满足$i_{j+1}modi_=0$,求这个子序列的最大长度. 题意:这题假如我们用$O(n^2)$的朴素DP来求肯定是会TLE的,我们在原有的方法上做一些优化. 我们首先遍历$a$,确定子序列的首位置
阅读全文
摘要:题意:求一个只由$01$组成的字符串,使得它所有长度为$2$的子串满足:每对子串的数字和为$0,1,2$的个数为$a,b,c$. 题解:我们先考虑子串数字和为$1$的情况,构造出一个$10$的循环串,然后在它的头部尾部适当添加$1$和$0$,使得a和c也满足即可.需要特判$b=0$的情况,并且$b$
阅读全文

浙公网安备 33010602011771号