题目大意 给定一个大小为n的数组,从中选出一个子集使得这个子集中的数的和能被n整除. 假设开始我没有做出来,那么我就random_shuffle一下,然后计算前缀和,有一个能被n整除,就输出答案.于是这道题就过了.(数据水得起飞) 考虑计算前缀和,如果存在两个前缀和在模n的意义同余,那么就有可以将两个前缀和相减得到的一段区间的和,它的和就是n的倍数. 考虑这么做的正确性,模n的意义下有n个数,但是前缀和总共有(n + 1)个数. Code #include <iostream> #includ…