【树形DP】AT_dp_p Independent Set 题解

news2024/11/25 10:42:55

step 1 题意理解

  • 有一棵有 N N N 个顶点的树,编号为 1 , 2 , … , N 1,2,…,N 1,2,,N
  • Taro 决定将每个顶点涂成白色或黑色。 在这里,不允许将相邻的两个顶点都涂成黑色
  • 找出可以涂色的方式数量,对 1 0 9 + 7 10^9 + 7 109+7 取模。

step 2 样例解释

【样例输入】

3
1 2
2 3

【样例输出】

5

【样例解释】
在这里插入图片描述

step 3 做法解释

  1. 考虑与没有上司的舞会相同的分类方法,对 d p dp dp 数组额外开一维来记录上一层的是否是黑色
  2. 对于每一次转移,都有以下转移方程:
  • { f i , j = f i , j × ( f v , 0 + f v , 1 ) j = 0 f i , j = f i , j × f v , 0 j = 1 \begin{cases} f_{i,j} = f_{i,j}\times (f_{v,0} + f_{v,1} )& j = 0 \\ f_{i,j} = f_{i,j}\times f_{v,0} & j = 1 \end{cases} {fi,j=fi,j×(fv,0+fv,1)fi,j=fi,j×fv,0j=0j=1
  • v v v i i i 的儿子

step 4 AC code

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll mod = 1e9 + 7;

ll n,vis[100005],dp[100005][2];
vector<ll> tree[100005];

void dfs(int xx){
	dp[xx][0] = dp[xx][1] = 1;
	//cout << tree[xx].size();
	//cout << xx << endl;
	for(int zz : tree[xx]){
		if(!vis[zz]){
			vis[zz] = 1;
			dfs(zz);
			dp[xx][0] *= dp[zz][0] + dp[zz][1];
			dp[xx][0] %= mod;
			dp[xx][1] *= dp[zz][0];
			dp[xx][1] %= mod;
		}
	}
}

int main(){
	cin >> n;
	for(int i = 1; i < n ;i++){
		int x,y;
		cin >> x >> y;
		tree[y] . push_back(x);
		tree[x] . push_back(y);
	}
	vis[1] = 1;
	dfs(1);
	cout << (dp[1][0] + dp[1][1]) % mod;
	return 0;
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2187916.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工业物联网的安全与隐私保护—SunIOT

【大家好&#xff0c;我是唐Sun&#xff0c;唐Sun的唐&#xff0c;唐Sun的Sun。一站式数智工厂解决方案服务商】 在当今数字化的时代&#xff0c;工业物联网&#xff08;IIoT&#xff09;正以前所未有的速度改变着工业生产的模式和效率。然而&#xff0c;随着工业物联网的广泛…

如何对物理系统进行数学建模?

一、关键因素和步骤 对某一物理系统建模时&#xff0c;需要考虑以下关键因素和步骤&#xff1a; 系统定义与理解&#xff1a; 清晰定义系统边界和组成部分&#xff0c;理解系统的功能、结构和动力学特性。 分析系统输入、输出及其相互作用&#xff0c;确定系统的动态变量。 建…

Linux之实战命令24:od应用实例(五十八)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

大模型~合集3

我自己的原文哦~ https://blog.51cto.com/whaosoft/11576789 # 大模型对齐阶段的Scaling Laws Scaling law不仅是一个好用的工具&#xff0c;它本身的存在也给出了能影响模型效果的关键因素&#xff0c;指导着算法的迭代方向&#xff0c;比如在预训练中&#xff0c;核…

【Python】bpython:增强版 Python 交互式解释器

bpython 是一个增强版的 Python 交互式解释器&#xff0c;它为开发者提供了更加友好和高效的交互体验。与 Python 内置的 REPL (Read-Eval-Print-Loop) 相比&#xff0c;bpython 提供了更多实用功能&#xff0c;比如自动补全、语法高亮、实时显示函数签名等&#xff0c;使得编写…

如何高效使用Prompt与AI大模型对话

一、如何与人工智能对话 在人工智能的世界里&#xff0c;提示词&#xff08;Prompt&#xff09;就像是一把钥匙&#xff0c;能够解锁AI智能助手的潜力&#xff0c;帮助你更高效地获取信息、解决问题。但如何正确使用这把钥匙&#xff0c;却是一门艺术。本文将带你了解提示词的…

如何在银河麒麟高级服务器操作系统V10搭建虚拟机管理器?

如何在银河麒麟高级服务器操作系统V10搭建虚拟机管理器&#xff1f; 1. 安装libvirt和virt-manager2. 启动libvirt服务3. 打开virt-manager &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在银河麒麟V10上搭建虚拟机管理器&#xff0c;只需…

python泵站设备运行预警信息管理系统

目录 功能介绍具体实现截图技术栈和环境说明python语言解决的思路性能/安全/负载方面核心代码部分展示详细视频演示源码获取方式 功能介绍 用户端 注册登录&#xff1a;用户可以注册账号并登录系统。 西电泵站简介&#xff1a;提供泵站的历史、功能和重要性等详细介绍。 泵站…

华为OD机试 - 无向图染色(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

前缀和算法详解

对于查询区间和的问题&#xff0c;可以预处理出来一个前缀和数组 dp&#xff0c;数组中存储的是从下标 0 的位置到当前位置的区间和&#xff0c;这样只需要通过前缀和数组就可以快速的求出指定区间的和了&#xff0c;例如求 l ~ r 区间的和&#xff0c;就可以之间使用 dp[l - 1…

Java继承、final/protected说明、super/this辨析

目录 1.什么是继承 2.继承的特征 3.子类构造方法 4.super和this辨析 5.再谈初始化 6.protected关键字用法说明 7.final的用法说明 1.什么是继承 上面的这个animal就是基类&#xff0c;我们的这个dog和bird都是继承这个基类的特征&#xff0c;使用的是extends这个关键字&a…

【重学 MySQL】五十六、位类型

【重学 MySQL】五十六、位类型 定义赋值与使用注意事项应用场景 在MySQL数据库中&#xff0c;位类型&#xff08;BIT类型&#xff09;是一种用于存储位字段值的数据类型。 定义 BIT(n)表示n个位字段值&#xff0c;其中n是一个范围从1到64的整数。这意味着你可以存储从1位到64…

终于知道神秘的蓝莓真身了

黑森林实验室&#xff08;Black Forest Labs&#xff0c;简称 BFL&#xff09;是一家初创公司&#xff0c;由流行的 Stable Diffusion AI 图像生成模型的创建者创立&#xff0c;该模型是许多 AI 图像生成应用程序和服务&#xff08;如 Midjourney&#xff09;的基础。 这意味着…

github/git密钥配置与使用

零、前言 因为要在ubuntu上做点东西&#xff0c;发现git clone 的时候必须输账户密码&#xff0c;后来发现密码是token&#xff0c;但是token一大串太烦了&#xff0c;忙了一天发现可以通过配置 公钥 来 替代 http 的 部署方式。 一、生成 ssh 密钥对 我们先测试下能不能 连接…

Linux 信号详解

目录 一.前置知识 1.前台进程和后台进程 a.概念理解 b.相关指令 2.信号的前置知识 a.Linux 系统下信号的概念 b.进程对信号的处理方式 3.信号的底层机制 二.详解信号 1.信号的产生 a.键盘组合键 b.kill 指令和系统调用接口 ① kill 指令 ② kill() 系统调用接口 ③ raise() 系统…

Stable Diffusion绘画 | 来训练属于自己的模型:打标处理与优化

上一篇完成的打标工作&#xff0c;是为了获取提示词&#xff0c;让AI认识和学习图片的特征。 因此&#xff0c;合适、恰当、无误的提示词&#xff0c;对最终模型效果是相当重要的。 Tag 如何优化 通过软件自动生成的 Tag 只是起到快速建立大体架构的作用&#xff0c;里面会涉…

2023年全国大学生数学建模竞赛C题——针对蔬菜类商品定价与补货决策的研究

摘要 本文针对生鲜超市中蔬菜类商品的补货和定价策略问题&#xff0c;建立时间序列预测模型&#xff0c;以及目标规划分析&#xff0c;从而让生鲜超市的收益达到最大。 针对问题一&#xff0c;首先对数据进行处理&#xff0c;对销售量异常值进行剔除、对缺失值补0 处理…

SOMEIP_ETS_150: SD_Send_triggerEventUINT8Multicast_Eventgroup_6

测试目的&#xff1a; 验证DUT在Tester订阅事件组后&#xff0c;能够响应Tester触发的triggerEventUINT8Multicast方法&#xff0c;并将TestEventUINT8Multicast事件发送到订阅请求中端点选项指定的IP地址和端口。 描述 本测试用例旨在确保DUT能够正确处理事件组的订阅请求&…

【nlp自然语言】知识图谱,全文检索,自然语言nlp,数据资产标签,集成管理平台

一、项目介绍 一款全源码&#xff0c;可二开&#xff0c;可基于云部署、私有部署的企业级知识库云平台&#xff0c;一款让企业知识变为实打实的数字财富的系统&#xff0c;应用在需要进行文档整理、分类、归集、检索、分析的场景。 为什么建立知识库平台&#xff1f; 助力企业…

基于SpringBoot+Vue+MySQL的旅游网站

系统展示 用户前台界面 管理员后台界面 系统背景 随着社会的不断发展和人们生活水平的提高&#xff0c;旅游活动逐渐成为人们生活中不可或缺的一部分。传统的旅游服务方式存在信息不对称、服务流程繁琐等问题。为了改善用户体验、提高服务效率&#xff0c;采用现代化的技术手段…