本人第一次编写题解,如果有错误还请大家多多海涵 对于这道题,我们可以采用一种很巧妙的算法,即 “如果前i个数的前缀和与前j个数的前缀和(在对k取余之后)相等,则从i到j之间的数的和都为k的倍数” using namespace std; int main() { int n, K; cin >> n >> K; vector<int> a(n); for (int i = 0; i < n; ++i) { cin >> a[i]; } unordered_map<int, int>t; t[0] = 0; // 初始化:前缀和为...