两个 INF 相加溢出没
运行下面这段程序:
#include <algorithm>
#include <iostream>
#include <queue>
#include <set>
#include <string>
#include <tuple>
#include <utility>
#include <vector>
using namespace std;
typedef long long ll;
const ll INF = 1000000000; // 走不到的点记这个值,输出时写成 -1
using Graph = vector<vector<pair<int, int>>>; // g[u] 里放 (邻居 v, 边权 w)
int main() {
const int INF_I = 0x3f3f3f3f;
cout << INF_I + INF_I << endl;
}
(本题用 g++ -std=c++17 -O0 编译。)
全部评论