社区讨论
建议添加hack数据(违规自删)
P1038[NOIP 2003 提高组] 神经网络参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mlp6qmke
- 此快照首次捕获于
- 2026/02/16 21:03 3 天前
- 此快照最后确认于
- 2026/02/17 11:12 前天
针对的错误做法:当 时,不对出边终点的入度减去一。
错误代码:
CPP#include <bits/stdc++.h>
using namespace std;
typedef long long L;
L n, p, c[105], U[105], d[105], u, v, w;
vector<pair<L, L>> g[105];
queue<L> q;
int main() {
cin >> n >> p;
for (int i = 1; i <= n; ++i)
cin >> c[i] >> U[i];
for (int i = 1; i <= p; ++i) {
cin >> u >> v >> w;
g[u].push_back({v, w});
d[v]++; // 入度
}
for (int i = 1; i <= n; ++i)
if (d[i] == 0)
q.push(i);
else
c[i] -= U[i]; // 提前减去阈值
while (!q.empty()) {
u = q.front();
q.pop();
for (auto p : g[u]) {
if (c[u] > 0) { // 达到阈值
c[p.first] += p.second * c[u]; // 计算状态
if (!--d[p.first])
q.push(p.first); // 计算入度
}
// if (!--d[p.first])
// q.push(p.first);
}
}
int fl = 1; // 没有输出
for (int i = 1; i <= n; ++i)
if (g[i].empty())
if (c[i] > 0) {
fl = 0;
cout << i << " " << c[i] << endl;
}
if (fl)
cout << "NULL";
return 0;
}
提交记录:R263150366。
hack数据(输入):
TEXT4 3
0 0
1 0
0 0
0 0
1 3 0
2 3 1
3 4 1
hack数据(输出):
TEXT4 1
错误输出:
TEXTNULL
注:为什么不使用工单:不是受信任的用户。
meyiwishapig
回复
共 0 条回复,欢迎继续交流。
正在加载回复...