资讯详情

CSP-J 2022 解密 题解

📅 2026/10/8 13:18:19 | 华诺云谱 👁 阅读
CSP-J 2022 解密 题解
题目传送门题目链接 - 洛谷https://www.luogu.com.cn/problem/P8814题目大意题目写的很清楚这里就不写了思路根据题面我们能得到一个方程组稍作变形后得到由于所以设解方程组得所以我们只需要解方程求出再求出即可Tips:题目要求和均为正整数且做题时要注意AC Code#include bits/stdc.h using namespace std; #define lli long long int lli calcQuadraticEquation(lli a, lli b, lli c) // 解二元一次方程, 有解时一定返回正整数解 { lli delta b * b - 4 * a * c; // 求判别式 Δ if(delta 0) // 有解 { lli x1 (-b sqrt(delta0.5)) / 2 / a, x2 (-b - sqrt(delta0.5)) / 2 / a; // 0.5 避免误差, 根据一元二次方程求根公式求出两个解 if(x1 0) { return x1; } else if(x2 0) { return x2; } } return -1; // 无解会返回 -1 } int main() { lli k, n, e, d; cin k; while(cin n e d) // 多组输入 { lli a 1, b e * d - n - 2, c n, p calcQuadraticEquation(a, b, c), q; // a、b、c 为推导的系数 if(p ! -1) // 也许有解 { q n / p; if(p q) { swap(p, q); // 保证 p q } if(n p * q e * d (p - 1) * (q - 1) 1) // 验证, 因为解可能不是整数 { cout p q endl; continue; } } cout NO endl; // 无解 } return 0; }
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑