3294 问题 E: 蓝桥杯2024年第十五届决赛真题-数星星

 时间限制: 1s 内存限制: 128MB
题目描述

小明正在一棵树上数星星,这棵树有 n 个结点 1, 2, . . . , n。他定义树上的一个子图 G 是一颗星星,当且仅当 G 同时满足:

  1. G 是一棵树。

  2. 2. G 中存在某个结点,其度数为 |VG| − 1。其中 |VG| 表示这个子图含有的结点数。

两颗星星不相同当且仅当它们包含的结点集合 VG 不完全相同。小明想知道这棵树上有多少颗不同的星星包含的结点的数量在区间 [L, R] 中,答案对1000000007 取模。

输入

输入共 n + 1 行。

第一行为一个正整数 n。

后面 n − 1 行,每行两个正整数表示树上的一条边。

第 n + 1 行,两个正整数 L, R。

输出

输出共 1 行,一个整数表示答案。

样例输入

6
1 2
1 3
2 4
2 5
3 6
3 4

样例输出

6
提示

【样例说明】

包含 3 个结点的星星有 5 个,它们的结点集合分别为 {1, 2, 3},{1, 2, 4},{1, 2, 5},{2, 4, 5},{1, 3, 6}。包含 4 个结点的星星有 1 个,它的结点集合为 {1, 2, 4, 5}。

【评测用例规模与约定】

对于 20% 的评测用例,保证 n ≤ 20。

对于 100% 的评测用例,保证 n ≤ 105; 1 ≤ L ≤ R ≤ n。

比赛公告

2024年第十五届蓝桥杯软件赛C/C++决赛大学B组真题(共10个题)


【考生须知】

考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。

考试时间为 4 小时。考试期间选手可浏览自己已经提交的答案,被浏览的答案允许拷贝。时间截止后,将无法继续提交或浏览答案。

对同一题目,选手可多次提交答案,以最后一次提交的答案为准。选手必须通过浏览器方式提交自己的答案。

选手在其它位置的作答或其它方式提交的答案无效。

试题包含“结果填空”和“程序设计”两种题型。结果填空题:要求选手根据题目描述直接填写结果。求解方式不限。不要求源代码。把结果填空的答案直接通过网页提交即可,不要书写多余的内容。

程序设计题:要求选手设计的程序对于给定的输入能给出正确的输出结果。考生的程序只有能运行出正确结果才有机会得分。注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。对于编程题目,要求选手给出的解答完全符合 GNU C/C++ 标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的 API。

代码中允许使用 STL 类库。

注意: main 函数结束必须返回 0。

注意: 所有依赖的函数必须明确地在源文件中 #include

所有源码必须在同一文件中。调试通过后,拷贝提交。

提交时,注意选择所期望的编译器类型。



试题A: 合法密码(本题总分:5 分)

【问题描述】

小蓝正在开发自己的OJ 网站。他要求网站用户的密码必须符合以下条件:

1. 长度大于等于8 个字符,小于等于16 个字符。

2. 必须包含至少1 个数字字符和至少1 个符号字符。

例如lanqiao2024! 、+-*/0601、8((>w<))8 都是合法的密码。

而12345678 、##**##**、abc0!#、lanqiao20240601!?都不是合法

的密码。

请你计算以下的字符串中,有多少个子串可以当作合法密码?只要两个子串的开头字符和末尾字符在原串中的位置不同,就算作不同的子串。

字符串为:

kfdhtshmrw4nxg#f44ehlbn33ccto#mwfn2waebry#3qd1ubwyhcyuavuajb#vyec

sycuzsmwp31ipzah#catatja3kaqbcss2th

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一

个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。


试题B: 选数概率(本题总分:5 分)

【问题描述】

一个数组中有a 个1,b 个2,c 个3。设Pi; j 表示在数组中随机选取两个数,其中一个数为i,另一个数为j 的概率。比如P1;2 = ab/C(a+b+c,2),其中C(N; M) 为组合数,表示从N 个不同元素中任取M 个的方案数。

当a = __; b = __; c = __ 时,满足P1,2 = 517/2091 ; P2,3 = 2632/10455 ; P1,3 = 308/2091,且a + b + c 最小。保证a + b + c 最小的解是唯一的。

你需要提交一个格式为a,b,c 的字符串。例如假设你计算的结果是a =12; b = 34; c = 56,那么你需要提交的字符串是12,34,56。

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个只包含数字和英文半角逗号的字符串,在提交答案时只填写这个字符串,填写多余的内容将无法得分。