c++ - 这两个条件不是一样的吗?

标签 c++ algorithm

我正在 Codeforces 上解决这个初学者问题,年轻的物理学家。 https://codeforces.com/problemset/problem/69/A

答案是找出 3 个力是否处于平衡状态。

我提交了两个版本的答案。一位通过了,一位没有。但我不明白为什么它不会通过,两个条件不是一样吗?

if (sumx == 0 && sumy == 0 && sumz == 0)
    cout << "YES" << "\n";
else
    cout << "NO" << "\n";

以上是通过的。

if (sumx + sumy + sumz == 0)
    cout << "YES" << "\n";
else
    cout << "NO" << "\n";

这是没有通过的。

最佳答案

考虑 sumx = -1sumy = 1sumz = 0x + y + z = 0 存在二维无穷多个解,而 x = y = z = 0 只是一个 0 维奇点。

如果绘制x + y + z = 0的图形,您会得到:

a plane representing the solutions

该平面上的每个点都是一组三个值,它们的总和为 0。这三个点都为零的点只是海上的一个点。快速检查一下,你会发现约束过于简化,因为你有 3 个变量,但只有 1 个方程。这意味着您仍应具有 3 - 1 = 2 维的自由度,但单个点具有 0 维的自由度。

关于c++ - 这两个条件不是一样的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61054042/

相关文章:

c++ - C++中的 map 数据结构

java - 请解释一下 Kernighan 的比特计数算法背后的逻辑

algorithm - 根据时间表的旅行路线算法

算法题 最大化函数的平均数

algorithm - 动态算法查找数组中 "accessible"数字的乘积的最大和

c++ - 检测重复的单词 c++,不检测第一个单词

c# - Swig C++ 到 C# : How to wrap classes from C++ to make methods from template class available in derived class in C#?

python 永远不能调用包含继承逻辑的 c++ dll 或 so 文件?

c++ - 如何在 C++ 中将文本文件解析为结构的不同元素?

algorithm - 删除图像中的多余线条