2025年的CSP-J初赛阅读程序题也出来了,一共三道。第一道是暴力枚举互质三元组,第二道是排序去重后双指针划分区间,第三道是最长公共子序列(LCS)。整体风格和往年差不多,考察代码阅读和简单算法理解。第一题:互质三元组计数#include algorithm #include cstdio #include cstring inline int gcd(int a, int b) { if (b == 0) return a; return gcd(b, a % b); } int main() { int n; scanf("%d", n); int ans = 0; for (int i = 1; i = n; ++i) { for (int j = i + 1; j = n; ++j) { for (int k = j + 1; k = n; ++k) { if (gcd(i, j) == 1 gcd(j, k) == 1 gcd(i, k) == 1) { ++ans; } } } } printf("%d\n", ans); return 0; }
2025 CSP-J初赛阅读代码解析
2025年的CSP-J初赛阅读程序题也出来了,一共三道。第一道是暴力枚举互质三元组,第二道是排序去重后双指针划分区间,第三道是最长公共子序列(LCS)。整体风格和往年差不多,考察代码阅读和简单算法理解。第一题:互质三元组计数#include algorithm #include cstdio #include cstring inline int gcd(int a, int b) { if (b == 0) return a; return gcd(b, a % b); } int main() { int n; scanf("%d", n); int ans = 0; for (int i = 1; i = n; ++i) { for (int j = i + 1; j = n; ++j) { for (int k = j + 1; k = n; ++k) { if (gcd(i, j) == 1 gcd(j, k) == 1 gcd(i, k) == 1) { ++ans; } } } } printf("%d\n", ans); return 0; }