摘要:
题意:给你$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 阅读全文