#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) }}

  • -1
  • 0
  • 1
  • n

第 2 题

②处应填( )。

{{ select(2) }}

  • q.empty()
  • !q.empty()
  • dist[s]
  • n>0

第 3 题

③处应填( )。

{{ select(3) }}

  • q.back()
  • q.front()
  • s
  • g[s][0]

第 4 题

④处应填( )。

{{ select(4) }}

  • q.pop()
  • q.push(u)
  • dist[u]++
  • break

第 5 题

⑤处应填( )。

{{ select(5) }}

  • dist[v]==-1
  • dist[v]==0
  • v==s
  • g[v].empty()

第 6 题

⑥处应填( )。

{{ select(6) }}

  • dist[u]
  • dist[u]+1
  • dist[v]+1
  • 1

程序二:完善 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) }}

  • 0
  • 1
  • n
  • W

第 8 题

⑧处应填( )。

{{ select(8) }}

  • 0
  • w[i]
  • W
  • i

第 9 题

⑨处应填( )。

{{ select(9) }}

  • 0
  • w[i]
  • W
  • v[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