#P1423. 【Day6】搜索与 DP 成组完善程序(12题)
【Day6】搜索与 DP 成组完善程序(12题)
程序一:完善 BFS 最短路
补全第 1~6 空。
fill(dist, dist + n + 1, -1);
queue<int> q;
dist[s] = ____①____;
q.push(s);
while (____②____) {
int u = ____③____;
____④____;
for (int v : g[u]) {
if (____⑤____) {
dist[v] = ____⑥____;
q.push(v);
}
}
}
第 1 题
①处应填( )。
{{ select(1) }}
-101n
第 2 题
②处应填( )。
{{ select(2) }}
q.empty()!q.empty()dist[s]n>0
第 3 题
③处应填( )。
{{ select(3) }}
q.back()q.front()sg[s][0]
第 4 题
④处应填( )。
{{ select(4) }}
q.pop()q.push(u)dist[u]++break
第 5 题
⑤处应填( )。
{{ select(5) }}
dist[v]==-1dist[v]==0v==sg[v].empty()
第 6 题
⑥处应填( )。
{{ select(6) }}
dist[u]dist[u]+1dist[v]+11
程序二:完善 0/1 背包
补全第 7~12 空。
int dp[W + 1] = {};
for (int i = ____⑦____; i <= n; ++i) {
for (int j = ____⑧____; j >= ____⑨____; --j) {
dp[j] = max(____⑩____, ____⑪____);
}
}
cout << ____⑫____;
第 7 题
⑦处应填( )。
{{ select(7) }}
01nW
第 8 题
⑧处应填( )。
{{ select(8) }}
0w[i]Wi
第 9 题
⑨处应填( )。
{{ select(9) }}
0w[i]Wv[i]
第 10 题
⑩处应填( )。
{{ select(10) }}
dp[j]dp[i]w[j]v[j]
第 11 题
⑪处应填( )。
{{ select(11) }}
dp[j-w[i]]+v[i]dp[j]+v[i]dp[j-w[i]]v[j]
第 12 题
⑫处应填( )。
{{ select(12) }}
dp[0]dp[n]dp[W]W