首先将朋友通过并查集缩起来,因为$P\geq\frac{n(n-1)}{3}$,所以最后最多剩下$46$个点. 将自相矛盾的点删掉,就变成求最大权独立集问题,这等于求补图的最大团. 然后直接用Bron-Kerbosch算法枚举所有极大团,枚举的时候更新答案即可. 时间复杂度$O(3^\frac{n}{3})$. #include<cstdio> #define N 46 typedef unsigned long long ll; int n,m,q,i,j,x,y,ans,sum,flag,…