今天是国际劳动妇女节,各位妇女们有没有去劳动啊QwQ?反正我没去
传送门
题解
数据范围好小啊,看起来像是状压DP或者搜索之类的。蒟蒻我选择了模拟退火+贪心。
先考虑贪心,我们从$1$到$n$遍历整个序列,每次就把当前的元素丢到加和最小的那一组里。
显然光光这样贪心是肯定不行的,但是这样得到的答案还是比较优的。考虑怎样改进。
不难发现,如果遍历序列的顺序会影响最后的答案,那么可以考虑直接random_shuffle,打乱个比如$10^5$次的,很大概率上就能刷到最优解了。
但是总感觉直接random_shuffle不太靠谱啊(不过貌似也能AC),但是蒟蒻我选择了模拟退火,感觉起来会靠谱一些(其实到底是不是更靠谱我也不知道,但是我想练一下模拟退火,所以就这样写了)。
每次随机拎出来两个元素交换,然后再计算当前答案就可以了。
代码
1 |
|