P10912 [蓝桥杯 2024 国 B] 数星星

题意简介

给定一棵 \(n\) 个节点的树和 \(L,R\),询问有多少个子图 \(G\),满足该子图是一棵树,树中存在一个节点 \(u\),其度数为 \(|V_G|-1\),且 \(|V_G| \in [L,R]\)。

思路

观察到每一个满足条件的子图 \(G\)中,\(u\) 的度数为 \(|V_G|-1\) 意味着 \(u\) 和 \(G\) 中其他所有点均有一条连边,故 \(G\) 必然是一张菊花图

那么对于每一个节点 \(u\),设其度数为 \(deg_u\),对于 \(\forall m \in [1,deg_u+1]\),该节点可以对大小为 \(m\) 的星星数量产生 \(C_{deg_u}^{m-1}\) 的贡献。

如果直接遍历每一个节点分别统计,时间复杂度将会达到 \(O(n \times (R-L+1))\) 即 \(O(n^2)\) 级别,对于 \(N=1 \times 10^5\) 显然会超时,所以我们考虑预处理出 \(num_i\) 表示度数为 \(i\) 的节点数量,这样在算到度数相同的节点时可以直接将贡献乘上一个 \(num_i\),此时设有 \(t\) 种不同的 \(deg_u\),\(\Sigma_{i=1}^t \leq n\),即 \(t\) 一定不会超过 \(\sqrt{n}\),最终的时间复杂度为 \(O(n\sqrt{n})\)。

Code

//度为i的节点可以为节点数为j的星星数提供C(i,j-1)的贡献
#include<iostream>
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
const int N=1e5+5;
const int MOD=1e9+7;
int n,L,R,degree[N],num[N];
long long fac[N],inv[N],ans=0;
long long quick_pow(long long a,long long b)
{
long long base=a,res=1;
while(b)
{
if(b&1) res=res*base%MOD;
base=base*base%MOD;
b>>=1;
}
return res;
}
void init(int n)
{
fac[0]=1;
for(int i=1;i<=n;i++)
fac[i]=fac[i-1]*i%MOD;
inv[n]=quick_pow(fac[n],MOD-2);
for(int i=n;i>=1;i--)
inv[i-1]=inv[i]*i%MOD;
}
long long C(int n,int m)
{
if(m<0||m>n) return 0;
return fac[n]*inv[m]%MOD*inv[n-m]%MOD;
}
int main()
{
IOS;
cin>>n;
init(n);
for(int i=1;i<n;i++)
{
int u,v;
cin>>u>>v;
degree[u]++,degree[v]++;
}
cin>>L>>R;
for(int i=1;i<=n;i++)
num[degree[i]]++;
for(int i=max(1,L-1);i<=n;i++)
{
if(num[i]>0)
for(int j=L;j<=min(R,i+1);j++)
ans=(ans+num[i]*C(i,j-1)%MOD)%MOD;
}
cout<<ans<<'\n';
return 0;
}

完结撒花~

P10912 [蓝桥杯 2024 国 B] 数星星的更多相关文章

  1. 蓝桥杯之K好数

    如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K进制数中K好数的数目.例如K = 4,L = 2的时候,所有K好数为11.13.20.22.30.3 ...

  2. Java实现 蓝桥杯 蓝桥杯VIP 基础练习 数的读法

    问题描述 当输入12 3456 7009时,会给出相应的念法: 十二亿三千四百五十六万七千零九 用汉语拼音表示为 shi er yi san qian si bai wu shi liu wan qi ...

  3. 蓝桥杯之K好数问题

    问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K进制数中K好数的数目.例如K = 4,L = 2的时候,所有K好数为11.13.20.22 ...

  4. 蓝桥杯  历届试题 幸运数  dfs

    历届试题 幸运数 时间限制:1.0s   内存限制:256.0MB 问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然数1,2, ...

  5. 蓝桥杯—BASIC-25 回形取数

    题目:回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度.一开始位于矩阵左上角,方向向下.输入格式 输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列.接下来m行每行 ...

  6. java 蓝桥杯基础训练 回文数

    public class _8回文数 { //两种方法都可以 // public static void main(String[] args) { // String zheng ="&q ...

  7. 算法笔记_077:蓝桥杯练习 K好数(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K进制数中K好数的数目.例如K = 4, ...

  8. 蓝桥杯--算法提高 排列数 (简单dfs)

    算法提高 排列数   时间限制:1.0s   内存限制:256.0MB      问题描述 0.1.2三个数字的全排列有六种,按照字母序排列如下: 012.021.102.120.201.210 输入 ...

  9. Java实现 蓝桥杯 算法训练 相邻数对(暴力)

    试题 算法训练 相邻数对 问题描述 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1. 输入格式 输入的第一行包含一个整数n,表示给定整数的个数. 第二行包含所给定的n个整数. 输出格式 ...

  10. Java实现 蓝桥杯VIP 算法训练 数的统计

    问题描述 在一个有限的正整数序列中,有些数会多次重复出现在这个序列中. 如序列:3,1,2,1,5,1,2.其中1就出现3次,2出现2次,3出现1 次,5出现1次. 你的任务是对于给定的正整数序列,从 ...

随机推荐

  1. 进阶篇:6.2)公差的正态分布与CPK与制程能力(重要)

    本章目的:明确公差分布(Tolerance Distribution)也有自己的形状,了解CPK概念. 1.正态分布(常态分布)normal distribution的概念 统计分析常基于这样的假设: ...

  2. 10G大文件用什么传输比较快?

    从设计师分享高清渲染图,到开发人员同步庞大的代码库,再到企业管理层跨区域传输关键运营数据,大文件传输需求的增加已成为每日例行任务.一旦文件大小达到数十GB,原有的传输方式往往显得力不从心,不仅浪费时间 ...

  3. 「闲聊文」准大三的我,思前想后还是不搞java了

    直接拿我在我们学校贴吧发的文了,我只是个二本生,进互联网还是很难的啦,还是转行吧. 有人说 "不要美化自己未走过的道路",毕竟已经沉默成本在这里面了,我也有点拎不清,但是也是决定了 ...

  4. A Fruitful Journey

    When the winter holiday approaching, I just dreamed about a big sleep. However, the holiday made a t ...

  5. 分析西门子Smart ECX 与MyEMS对比

    西门子Smart ECX智慧能碳管理平台与MyEMS开源能源管理平台在多个维度上存在显著的差异.以下是对两者进行的客观对比: 一.技术架构与功能 西门子Smart ECX: 技术基础:基于物联网.云计 ...

  6. TFS WebHook设置URL无法访问问题

    自己在本机10.1.101.223写了一个接收TFS网页WebHook发送信息的项目,访问该项目的路由地址为:http://10.1.101.223:5955/api/Swagger/Some 在TF ...

  7. 告别“无效”开发:AI编程时代,我们如何写出让AI读懂的开发文档?

    一.一个我们都经历过的尴尬现实:AI给了我一堆"漂亮"的垃圾代码 "用AI写个在线商城." 相信每个尝试过AI编程的开发者,都对类似场景不陌生.我们满怀期待地向 ...

  8. mysql binary like_MYSQL的binary解决mysql数据大小写敏感问题的方法

    1.在create的时候就使用binary,而不是在query的时候加. username varchar(30) BINARY NOT NULL default '', 如果表已经建好了,使用: a ...

  9. redis外网访问和protected-mode配置

    在虚拟机上安装了redis 3 ,启动后本机客户端可以连接访问,但是外部主机一直访问不了 到底怎么回事儿呢? 用telnet 测试下,结果如下 查看了虚拟机的端口等情况,一切正常,网上查了一下资料都没 ...

  10. visio 文件VSD转jpg

    https://download.csdn.net/download/qqlmq/4133928