首页 / 客观题库

80142 - 2026挑战赛提高组46·50

题目(材料题)

统计树上路径 给出一棵n($1 \leq n \leq 10^4$ )个节点的,每条边有边权的树。求有多少组点对 $(i,j)$,满足这两个点之间的树上简单路径长度是k($1 \leq k \leq 100$ )的整数倍。其中 $(i,j)$和 $(j,i) , i = \not j$视为两组不同的点对。

试补全程序:

 

#include<iostream>

#include<vector>

using namespace std;

 

int n, k;

struct edge {

    int to;

    int val;

};

vector<edge> map[10001];

int d[10001][100];

long long total;

 

void dfs(int node, int fa) {

        ①   

    for (edge e : map[node]) if (e.to != fa) {

       dfs(    ②    );

       for (int a = 0; a < k; a++) { 

               ③   

       }

       for (int a = 0; a < k; a++) {

               ④   

       }

    }

}

int main() {

    cin >> n >> k;

    for (int i = 1; i < n; i++) {

       int x, y, w;

       cin >> x >> y >> w;

       map[x].push_back({ y,w });

       map[y].push_back({ x,w });

    }

    dfs(1, 0);

        ⑤   

    cout << total;

    return 0;

}
||
( 单选 )

① 处应填

A d[node][0] = 1;

B for (int i = 0; i < k; i++) d[node][i] = 1;

C memset(d[node], 1, sizeof d[node]);

D memset(d[node], 0x0f, sizeof d[node]);

( 单选 )

② 处应填

A node, fa

B e.to, fa

C e.to, node

D e.val, fa

( 单选 )

③ 处应填

A total += d[e.to][a] * d[node][(k - (e.val + a) % k) % k];

B total += d[e.to][a] * d[node][(a + e.val) % k];

C d[node][(k - (e.val + a) % k) % k] += d[e.to][a];

D d[node][(a + e.val) % k] += d[e.to][a];

( 单选 )

④ 处应填

A total += d[e.to][a] * d[node][(k - (e.val + a) % k) % k];

B total += d[e.to][a] * d[node][(a + e.val) % k];

C d[node][(k - (e.val + a) % k) % k] += d[e.to][a];

D d[node][(a + e.val) % k] += d[e.to][a];

( 单选 )

⑤ 处应填

A total++;

B total *= 2;

C total += n;

D total = total * 2 + n;

意见反馈

    最多上传3张图片,格式为JPG、PNG、JPEG,单张不超过5MB

    注册

    发送验证码

    密码必须包含数字、字母和特殊字符

    找回密码

    发送验证码

    密码必须包含数字、字母和特殊字符

    运行 ID:67149

    • 测试点1:Accepted
    • 用时:0 ms
    • 内存:288 kb
    • 测试点2:Accepted
    • 用时:0 ms
    • 内存:288 kb
    输入
    203
    输出
    203

    test

    测评信息

    错误.in文件下载

    错误.out文件下载

    运行 ID:67149

    2019-01-24 15:06:36