首页 > 其他分享 >Brukhovich and Exams

Brukhovich and Exams

时间:2024-03-13 22:22:41浏览次数:20  
标签:连通 Brukhovich num Exams ans 条边 操作 我们

我们将gcd为\(1\)的相邻两个数连边,比如

最初的\(ans\)就是边的总数

我们考虑一次操作最多让两条边消失。我们将这些边看成若干连通块(比如上面这幅图就有两个连通块,分别有三条边和一条边)。对于一个连通块若含有偶数条边,显然我们每次操作都可以让两条边消失,若含有奇数条边,最后要剩下一条边

所以我们先把所有的连通块处理了,来看看剩下了多少条边以及剩余了多少次操作次数,比较即可

这个算法对吗?对了一半

我们的前提——一次操作让两条边消失——是要没有数为\(1\)的情况下才成立的。现在有了\(1\)怎么办?

我们稍微修改一下就好了,将所有\(1\)独立成连通块,比如

那么对于非\(1\)的块,我们仍然执行上面的算法,然后来考虑剩余的边

对于全\(1\)的块,设其有\(num\)个\(1\),那么我们每执行一次操作会让\(ans\)少\(1\),但是如果执行了\(num\)次操作,\(ans\)总共会少\(num+1\)(其实这里有一种特殊情况,就是这个块的左端点为\(1\)或者右端点为\(n\),此时执行\(num\)次操作\(ans\)还是只会减少\(num\)次)(其实还有一种最特殊的情况就是所有\(a_i\)都是\(1\),此时我们特殊判断就好了)。所以我们肯定按照全\(1\)块的长度排序,优先处理长度较小的全\(1\)块

如果所有全\(1\)块都处理完了还有次数没有用,我们再来考虑最开始的长度为偶数的非\(1\)块(这种块有奇数条边,所以最后会剩下一条边)剩下的边即可

标签:连通,Brukhovich,num,Exams,ans,条边,操作,我们
From: https://www.cnblogs.com/dingxingdi/p/18071685

相关文章

  • [ABC238F] Two Exams 题解
    [ABC238F]TwoExams题解思路解析这题很麻烦,因为有两个维度。所以可以想到先按照第一维排序,这样就不需要考虑第二维的问题。其次再发现数据范围小,可以想到能用dp做,接下来就考虑如何dp。首先我们要知道我们遍历到了第几个公民,同时还要知道还剩下几个代表名额,同时我们还需要思......
  • [ABC238F] Two Exams 题解
    题目链接题意有\(N\)个人,有两个\(1\simN\)排列\(P,Q\),在其中选择\(K\)个数,要满足:如果\(P_x<P_y\)且\(Q_x<Q_y\)则不能选了\(y\)而不选\(x\)。思路首先按照\(P\)从小到大排序,这样的话只用考虑\(Q\)。设\(f_{i,j,k}\)表示从前\(i\)个数中选\(j\)个,其中......
  • 【题解】CF1891E - Brukhovich and Exams
    【题解】CF1891E-BrukhovichandExamshttps://www.luogu.com.cn/problem/CF1891E我们考虑把区间分段:若两个相邻的数不互素,中间分开;若两个相邻的数中有且仅有一个\(1\),中间分开。那么我们得到了两种区间:全\(1\)区间与无\(1\)区间。若两个相邻数在同一区间内,那么就在区间......
  • CF732D Exams 题解
    题目链接题目分析:首先可以发现,如果当前第\(i\)天可以完成所有考试,那么第\(i+1\)天一定也可以。因此,答案具有单调性。考虑二分,将原问题转换为判定性问题。判定是否......