- 五户共井问题
五户共井问题
- @ 2025-11-8 19:38:48
有谁会么
2 条评论
-
wangxiaoyu @ 2025-12-8 18:42:30#include <iostream> using namespace std; int main() { long long k, n1, n2, n3, n4, n5; cin >> k >> n1 >> n2 >> n3 >> n4 >> n5; long long maxH = k * 100; // 最大井深(厘米) long long K = 1 + n1 * n2 * n3 * n4 * n5; // 计算 M = 1 - n5 * (1 - n4 * (1 - n3 * (1 - n2))) long long temp = 1 - n2; temp = 1 - n3 * temp; temp = 1 - n4 * temp; long long M = 1 - n5 * temp; // 枚举井深 H for (long long H = 1; H <= maxH; H++) { // 检查 H*M 是否能被 K 整除 if (H * M % K != 0) continue; long long A = H * M / K; if (A <= 0 || A >= H) continue; long long B = H - n1 * A; if (B <= 0 || B >= H) continue; long long C = H - n2 * B; if (C <= 0 || C >= H) continue; long long D = H - n3 * C; if (D <= 0 || D >= H) continue; long long E = H - n4 * D; if (E <= 0 || E >= H) continue; // 检查方程 (e) 是否成立(可选,但增加安全性) if (H != n5 * E + A) continue; // 检查五家绳长是否互不相同 if (A == B || A == C || A == D || A == E || B == C || B == D || B == E || C == D || C == E || D == E) continue; // 找到可行解,输出并结束程序 cout << H << " " << A << " " << B << " " << C << " " << D << " " << E << endl; return 0; } // 没有找到可行解 cout << "not found" << endl; return 0; }拿去看吧
-
@ 2025-11-8 19:40:26我会
- 1
信息
- ID
- 208
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 18
- 已通过
- 5
- 上传者