news 2026/5/11 2:15:38

打卡信奥刷题(2783)用C++实现信奥题 P3914 染色计数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打卡信奥刷题(2783)用C++实现信奥题 P3914 染色计数

P3914 染色计数

题目描述

有一颗N NN个节点的树,节点用1 , 2 , ⋯ , N 1,2,\cdots,N1,2,,N编号。你要给它染色,使得相邻节点的颜色不同。有M MM种颜色,用1 , 2 , ⋯ , M 1,2,\cdots,M1,2,,M编号。每个节点可以染M MM种颜色中的若干种,求不同染色方案的数量除以(10 9 + 7 10^9 + 7109+7)的余数。

输入格式

第1 行,2 个整数N , M N,MN,M

接下来N NN行,第i ii行表示节点i ii可以染的颜色。第1个整数k i k_iki,表示可以染的颜色数量。接下来k i k_iki个整数,表示可以染的颜色编号。

最后N − 1 N - 1N1行,每行2个整数A i , B i A_i,B_iAi,Bi,表示边( A i , B i ) (A_i,B_i)(Ai,Bi)

输出格式

1 个整数,表示所有的数。

输入输出样例 #1

输入 #1

2 2 1 1 2 1 2 1 2

输出 #1

1

说明/提示

• 对于30% 的数据,1 ≤ N ≤ 10 ; 1 ≤ M ≤ 4 1 \le N \le 10; 1 \le M \le 41N10;1M4

• 对于60% 的数据,1 ≤ N ≤ 200 ; 1 ≤ M ≤ 200 1 \le N \le 200; 1 \le M \le 2001N200;1M200

• 对于100% 的数据,1 ≤ N ≤ 5000 ; 1 ≤ M ≤ 5000 1 \le N \le 5000; 1 \le M \le 50001N5000;1M5000

C++实现

#include<iostream>#include<cstdio>#include<vector>usingnamespacestd;constintmod=1e9+7;constintN=5001;intn,m,f[N][N],dp[N];vector<int>a[N];voiddfs(intx,intfa){intlen=a[x].size();for(inti=0;i<len;i++){if(a[x][i]==fa)continue;dfs(a[x][i],x);for(intj=1;j<=m;j++)f[x][j]=(1ll*f[x][j]*(dp[a[x][i]]-f[a[x][i]][j])%mod+mod)%mod;}for(inti=1;i<=m;i++)dp[x]+=f[x][i],dp[x]%=mod;}intmain(){scanf("%d%d",&n,&m);for(inti=1;i<=n;i++){intk;scanf("%d",&k);for(intj=1;j<=k;j++){intx;scanf("%d",&x);f[i][x]=1;}}for(inti=1;i<n;i++){intx,y;scanf("%d%d",&x,&y);a[x].push_back(y);a[y].push_back(x);}dfs(1,0);printf("%d",dp[1]);return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 0:02:26

CPU/内存/硬盘/网络信息提取——工业级一句话指令集

文章目录 🚀 CPU/内存/硬盘/网络信息提取——工业级一句话指令集 🔍 核心设计原则 🖥️CPU 信息(物理/逻辑/频率) 1. 物理CPU数 + 逻辑CPU数 + 每核线程数 2. 物理CPU型号 + 主频(实时 + 标称) 3. CPU架构 + 字长 + 字节序 4. CPU缓存层级(L1/L2/L3) 5. NUMA节点拓…

作者头像 李华
网站建设 2026/5/7 11:41:01

2026年,Agent与APP必有一战

旧钥匙打不开新大门&#xff0c;旧地图找不到新大陆。 刚过去的2025年&#xff0c;AI炙手可热&#xff0c;人工智能第一次走进人类日常生活——前所未有地通过手机AI甚至AI手机。 但颠覆与创新&#xff0c;也总是伴随“争议”。 从近年手机厂运用AI算法辅助&#xff0c;让更多人…

作者头像 李华
网站建设 2026/5/6 19:47:12

基于PLC的立体车库管理系统设计

基于PLC的立体车库管理系统设计与实现 第一章 绪论 随着城市汽车保有量激增&#xff0c;停车难已成为城市交通治理的核心痛点&#xff0c;立体车库凭借空间利用率高&#xff08;较传统平面车库提升3-5倍&#xff09;的优势成为主流解决方案&#xff0c;但传统立体车库多仅具备…

作者头像 李华
网站建设 2026/5/4 15:17:03

DDD 架构演进,单层、三层,四层,工程分层演进过程!

定义接口、创建方法、调用展示,其实编程写代码说到底也就这3步,人人都是程序员👨🏻‍💻。公司老板都觉得,它有个AI工具,它都能写代码。 但现在的系统工程的分层结构,可不只是一层就写个 Controller,甚至是3层(Model-View-Controller),也有可能是4层(DDD)架构。…

作者头像 李华
网站建设 2026/5/8 13:13:48

Python 的 with 语句:把「资源管理」这件事交给语法

文章目录一、with 语句是干什么的&#xff1f;二、不用 with 会发生什么&#xff1f;三、传统解法&#xff1a;try / finally四、with 的本质&#xff1a;语法级 try / finally五、上下文管理器&#xff08;Context Manager&#xff09;5.1 一个最简单的例子5.2 __enter__ 和 _…

作者头像 李华