c++语言写要求结果跟样例一样#include <bits/stdc++.h> using namespace std; int n, m, f[100001], a[1001][1001]; int main() { scanf("%d%d", &n, &m); memset(a, 127, sizeof(a)); for (int i = 1; i <= m; i++) { int x, y, z; scanf("%d%d%d", &x, &y, &z); a[x][y] = min(a[x][y], z); } memset(f, 127, sizeof(f)); f[1] = 0; for (int i = 2; i <= n; i++) for (int j = 1; j < i; j++) if (f[j] < 1 << 30 && a[j][i] < 1 << 30) f[i] = min(f[i], f[j] + a[j][i]); printf("%d\n", f[n]); }
时间: 2024-03-14 20:43:24 浏览: 54
这是C++实现的代码,与之前的代码基本相同,只是将scanf和printf改为了cin和cout。代码如下:
```c++
#include <iostream>
#include <cstring>
using namespace std;
const int INF = 0x3f3f3f3f;
int n, m, f[100001], a[1001][1001];
int main() {
cin >> n >> m;
memset(a, INF, sizeof(a));
for (int i = 1; i <= m; i++) {
int x, y, z;
cin >> x >> y >> z;
a[x][y] = min(a[x][y], z);
}
memset(f, INF, sizeof(f));
f[1] = 0;
for (int i = 2; i <= n; i++) {
for (int j = 1; j < i; j++) {
if (f[j] < INF && a[j][i] < INF) {
f[i] = min(f[i], f[j] + a[j][i]);
}
}
}
cout << f[n] << endl;
return 0;
}
```
相关问题
c++怎么添加#include<bits/stdc++.h> using namespace std;
要在C++程序中添加#include<bits/stdc++.h>和using namespace std;,只需要在程序的开头添加这两行代码即可。这两行代码的作用是包含所有标准库头文件和使用标准命名空间std。下面是一个示例程序:
```
#include<bits/stdc++.h>
using namespace std;
int main() {
// your code here
return 0;
}
```
注意,这种方法只适用于一些编译器,如GCC和Clang。如果你使用的是其他编译器,可能需要手动包含所需的头文件。
#include <bits/stdc++.h> using namespace std;
这个头文件是C++11标准引入的,它包含了所有标准库中的头文件。使用这个头文件可以方便地在一个地方包含所有需要的头文件,而不需要一个一个地包含。这个头文件通常只在竞赛中使用,因为它不是标准C++头文件,不保证在所有编译器中都能正常工作。
以下是一个使用这个头文件的示例,实现输入4个整数a、b、c、d,将它们倒序输出:
```cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b, c, d;
cin >> a >> b >> c >> d;
cout << d << ' ' << c << ' ' << b << ' ' << a << endl;
return 0;
}
```
阅读全文