题目
https://nanti.jisuanke.com/t/16958
题意
给定一个n(n<=500)个点的无向图,给每条边黑白染色,输出同色三角形最少的个数和对应的方案
分析
首先考虑给定一个染色完毕的无向图,如何求同色三角形的个数
同色三角形的个数=总的个数-异色三角形的个数
而一个异色三角形对应两个异色角,所以我们可以通过算异色角的个数来计算异色三角形的个数
而异色角是有一个固定的点i引出去的n-1条边所决定的
设某个点i有$x_i$条1边,有$n-1-x_i$条2边
可以发现异色角的个数是$sum {x_i*(n-1-x_i)}$
那自然我们希望每个点引出去的1边和2边数量尽可能相同
对于偶数,可以根据样例的规律构造两个n/2的团,然后对连即可
对于奇数,发现4k+1的时候边数是偶数,此时可以使得每个点两种颜色边数相同,而4k+3的时候有唯一的一个点不能满足
关于奇数的构造可以每4个点往上加,构造即可