【CF109C】Lucky Tree【并查集】【dfs】

Coze:手把手教你搭建 小红书二创 智能体 前一篇 “” ,讲了如何针对需求进行拆解,并拆解 ”小红书二创“ 智能体,分为四个内容模块。通过上述步骤,开始一步一步构建 “小红书二创” 智能体。用来测试的小红书地址:http://xhslink.com/a/quxWEDAj3J48。 阅读详情

题目大意:

题目链接:https://codeforces.com/problemset/problem/109/C
给出一棵树,定义树上一条边的边权若只由4和7两个数字构成,则这一条边为幸运边。求这棵树上有多少三元组 ( x , y , z ) (x,y,z) (x,y,z)满足 x x x到 y y y的路径上和 y y y到 z z z的路径上都至少有一条幸运边。


思路:

最多绿题难度。结果洛谷给评了一个紫题。
考虑对于每一个点 x x x,如果我们求出有 s u m sum sum个点与 x x x之间的路径至少需要经过一条幸运边,那么答案其实就是 s u m ( s u m − 1 ) sum(sum-1) sum(sum−1),因为这 s u m sum sum个点中,任意两个点都可以与 x x x组成一个三元组。
所以我们记录这棵树的每一条边是否为幸运边,然后 d f s dfs dfs,求出每一个不包含幸运边的连通块的大小。并查集维护每一个点出现在哪一个连通块内。
最后枚举每一个点,不与这个点在同一个连通块内的点就必然在到 x x x的路径中有至少一条幸运边。那么就可以直接求答案了。
时间复杂度 O ( n ) O(n) O(n)。没算并查集的复杂度。


代码:

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long ll;

const int N=100010;
int n,tot,size[N],father[N],head[N];
bool vis[N];
ll ans;

struct edge
{
	int next,to;
	bool flag;
}e[N*2];

void add(int from,int to,bool flag)
{
	e[++tot].to=to;
	e[tot].flag=flag;
	e[tot].next=head[from];
	head[from]=tot;
}

bool check(int x)
{
	for (;x;x/=10)
		if (x%10!=4 && x%10!=7) return 0;
	return 1;
}

int find(int x)
{
	return x==father[x]?x:father[x]=find(father[x]);
}

void dfs(int x,int fa)
{
	vis[x]=1;
	father[x]=find(fa);
	size[father[x]]++;
	for (int i=head[x];~i;i=e[i].next)
	{
		int v=e[i].to;
		if (v!=fa && !e[i].flag) dfs(v,x);
	}
}

int main()
{
	memset(head,-1,sizeof(head));
	scanf("%d",&n);
	for (int i=1,x,y,z;i<n;i++)
	{
		scanf("%d%d%d",&x,&y,&z);
		add(x,y,check(z)); add(y,x,check(z));
	}
	for (int i=1;i<=n;i++)
		father[i]=i;
	for (int i=1;i<=n;i++)
		if (!vis[i]) dfs(i,i);
	for (int i=1;i<=n;i++)
		ans+=(ll)(n-size[father[i]])*(n-size[father[i]]-1);
	printf("%I64d",ans);
	return 0;
}
STM32 USB AUDIO实战指南——从零构建音频设备 本文详细介绍了如何使用STM32F407构建USB音频设备,从硬件准备到软件配置,再到音频播放和录制功能的实现。通过STM32CubeMX配置和实战代码示例,帮助开发者快速掌握USB Audio Class规范,实现低延迟、高质量的音频传输,适用于语音交互、音乐播放等多种场景。 阅读详情

相关推荐

足球大数据分析入门:从赔率到预测的完整流程(附数据集)

本文提供了一份足球大数据分析的完整实战指南,涵盖从数据采集、清洗、特征工程到模型构建与评估的全流程。文章详细介绍了如何利用公开数据集与API获取数据,并通过逻辑回归、随机森林等模型进行比赛结果预测,最后强调了模型评估与策略回测的重要性,帮助读者构建自己的分析框架。

r7s8t的博客 404

CF 109C: Lucky Tree

题目链接: http://codeforces.com/contest/109/problem/C 题目大意: 在一棵树上,有一些边是幸运边,现要求出点组(i, j, k)的数量,使得i 到j 的路径上和i 到k 的路径上都至少有一条幸运边。 算法: 法一: 将点按照非幸运边缩联通块。 枚举做i 的点,那么以该点为i 的所有解,即是由i 点与任意两个不与它在同一个联通

frog的小池塘 1381

ESP32-P4开发板实战:从零配置VSCode环境到点亮MIPI-DSI屏幕(避坑指南)

本文详细介绍了ESP32-P4开发板在VSCode环境下的配置流程,包括SDK安装、idf_component.yml依赖管理,以及MIPI-DSI屏幕驱动的实现方法。通过实战指南帮助开发者避开常见配置陷阱,快速完成从环境搭建到屏幕点亮的全流程,适用于物联网和嵌入式开发场景。

pp12345的博客 742

CodeForces 10 C.Lucky Tree(并查集)

Description 定义全部由4,74,74,7组成的数字为幸运数字,给出一棵nnn个节点的树,每条边的有边权,边权为幸运数字的边称为幸运边,求三元组(i,j,k)(i,j,k)(i,j,k)的个数使得iii到j,kj,kj,k路径上都至少有一条幸运边 Input 第一行一整数nnn表示节点数,之后n−1n−1n-1每行输入三个整数u,v,wu,v,wu,v,w表示u,vu,vu,v之间...

ZSQ 637

2015年全国大学生电子设计大赛综合测评题

2015年全国大学生电子设计大赛综合测评题 题目如下: 一、555产生可调方波 555定时器是一种集成电路芯片,常被用于定时器、脉冲产生器和振荡电路。555可被作为电路中的延时器件、触发器或起振元件。 555定时器可组成单稳态电路、多稳态电路和无稳态电路。产生方波其实就是制造一个无稳态电路。 555定时器的引脚功能: 其中: DIS引脚与OUT脚电平一致 TRIG: 当此引脚电压降至1/3VCC(或由控制端决定的阈值电压)时输出端给出高电平。 THR:当此引脚电压升至2/3VCC(或由控制端决定的阈值电压

m0_47066484的博客 3万+

打开UG会安装报错:initialization internal ERROR 的提示框,提示line 1344 of错误的解决方案

打开UG会安装报错:initialization internal ERROR 的提示框,提示line 1344 of错误的解决方案

Q82556499的博客 3521

CF109 C. Lucky Tree 并查集

Petya loves lucky numbers. We all know that lucky numbers are the positive integers whose decimal representations contain only the lucky digits4and7. For example, numbers47,744,4are lucky and...

weixin_30952103的博客 209

从零开始:STM32C011开发板的硬件生态与快速验证

本文全面解析STM32C011开发板的硬件生态与快速验证方法,帮助开发者从零开始掌握这款基于ARM Cortex-M0+内核的微控制器。内容涵盖硬件架构解析、开发环境搭建、基础功能验证及性能优化技巧,为嵌入式开发提供实用指导。

swift5iosmith的博客 481

CF 109D 模拟

题目不要求k最小,所以定住一个lucky number,反复用它进行交换。最后的结果必须是不降序,所以先确定每个位置上最终的数,若当前此位不是最终结果,就进行交换。例如第i位,若第i位上的数不满足最终结果,就用它与lucky number交换,再用lucky number和最终应该在第i位上的数交换,一共两次。这样最多交换(n-1)回合,正好满足题意交换次数 #include #includ

my coding life 825

Allegro格式PCB转换成Pads操作指导

变量:AEX_BIN_ROOT 值:D: MentorGraphics>PADSVX1.2>SDD_HOME>translators>win32bin (值:软件按装的位置,可以是9.5版本,也可以是VX1.0等不同的版本)。变量:HOME 值:C:Users>win7>AppData>Roaming>SPB_Data (这个值是allegro快捷键存放位置器,也可以随意放置在那个盘,我们可以采用默认的路径)。第4步:打开 PADSLayout软件,然后选择导入文件,选择刚刚处理的 allegro文件。

weixin_54787054的博客 3717

SAP_PP模块定额工艺路线简介

在 SAP PP(生产计划)模块中,定额工艺路线(Routing) 是生产制造流程中的核心主数据之一,用于定义制造一个产品所需的标准操作步骤。工艺路线详细描述了生产过程中的各个工序、使用的工作中心、标准作业时间、资源分配等信息,是进行生产计划、成本核算、排产控制、车间执行等功能的基础。

我小时候很黑的博客 765

Codeforces 109C Lucky Tree 组合计数+dfs

题目链接:点击打开链接 题意: 给定n个点的树,有边权。 定义lucky number:数字只有4或7组成 对于一个三元组(i, j, k) 若path(i,j) 路径上的数字存在lucky number && path(i,k) 路径上的数字存在lucky number 则三元组合法。 问有多少个合法的三元组。 ( (i,j,k) != (i,k,j) ) 用全集-补集。dfs

九野的博客 1788

从 CDS 到对外接口:彻底吃透 SAP Business Service Definition 与 Service Binding

SAP ABAP开发中的Business Service(业务服务)已成为连接数据模型与外部消费的关键枢纽。Service Definition定义了要暴露的CDS实体,而Service Binding则负责将定义绑定到具体协议(如OData V2/V4)并发布为可消费服务。这种分层设计实现了同一服务定义在不同协议间的复用,符合SAP的解耦技术路线和Clean Core原则。从CDS视图到最终服务的完整链路清晰:先定义CDS模型,再通过Service Definition暴露实体,最后用Service Bi

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 159

CodeForces 109C 树形DP Lucky Tree

赶脚官方题解写得挺清楚的说,=_= 注意数据范围用long long,否则会溢出。 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cstring> 5 #include <vector> 6 usi...

weixin_30596023的博客 218

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【洛谷P1236】算24点【搜索】

比较简单的搜索题,注意细节即可

stoorz 1666

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【洛谷P4205】智慧珠游戏【dfs】

题目大意: 题目链接:https://www.luogu.org/problem/P4205 智慧珠游戏拼盘由一个三角形盘件和 12 个形态各异的零件组成。拼盘的盘 件如图 1 所示 可以放到盘件的任一位置,条件是能有地方放,且 尺寸合适,所有的零件都允许旋转(0º、90º、180º、270º)和翻转(水平、竖直)。 现给出一个盘件的初始布局,求一种可行的智慧珠摆放方案,使所有的零件 都能放...

stoorz 1555

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【JZOJ5776】小x游世界【换根法】【DP】【DFS】

题目大意: 题目链接:https://jzoj.net/senior/#main/show/5776 题目图片: http://wx4.sinaimg.cn/mw690/0060lm7Tly1fvjhzcpt7jj30j50f1aaw.jpg http://wx1.sinaimg.cn/mw690/0060lm7Tly1fvjhzchmayj30j30e5t8x.jpg http://wx4.si...

stoorz 1091

【JZOJ3888】正确答案【模拟】【dfs】

题目: 题目链接:https://jzoj.net/senior/#main/show/3888 小H与小Y刚刚参加完UOIP外卡组的初赛,就迫不及待的跑出考场对答案。 “吔,我的答案和你都不一样!”,小Y说道,”我们去找神犇们问答案吧”。 外卡组试卷中共有m道判断题,小H与小Y一共从其他n个神犇那问了答案。之后又从小G那里得知,这n个神犇中有p个考了满分,q个考了零分,其他神犇不为满分或零分。这...

stoorz 990

【CSP-S 2019】【洛谷P5666】树的重心【主席树】【树状数组】【dfs】

菜菜菜菜菜菜菜 终于改出来了qwq

stoorz 788

【洛谷P5651】基础最短路练习题【dfs】【并查集】

题目: 给定nnn个点mmm条边的无向简单联通图GGG,边有边权。保证没有重边和自环。 定义一条简单路径的权值为路径上所有边边权的异或和。 保证GGG中不存在简单环使得边权异或和不为0。 QQQ次询问xxx到yyy的最短简单路径。 思路: 题目保证了每一个简单环的异或和均为0。也就是说对于环上的任意两点(x,y)(x,y)(x,y),从x→yx\to yx→y的两条路径的权值相等。 所以对于每一...

stoorz 704

数字游戏【dfs】

卡常神题orzorz

stoorz 676

【CSP-S 2019】【洛谷P5658】括号树【dfs】【二分】

入门组选手承受范围之内233

stoorz 647

【JZOJ 3470】最短路【最短路】【DFS】

题目大意: 题目链接:https://jzoj.net/senior/#main/show/3470 给定一个nnn个点mmm条边的有向图,有kkk个标记点,要求从规定的起点按任意顺序经过所有标记点到达规定的终点,问最短的距离是多少。 思路: 最短路+DFS 首先,对于每一个标记点和sss点,以它们为起点跑一边SPFA,由于k≤10k≤10k\leq10,所以我们就可以得到一个只...

stoorz 565

【JZOJ1252】【洛谷P5194】天平【搜索】

折半搜索好题,居然在考试时想出来了awa

stoorz 554

【洛谷P5652】基础博弈练习题【dfs】【博弈论】

题目: 题目链接:https://www.luogu.org/problem/P5652 YSGH和YGSH在打膈膜,YSGS在旁边围观。 规则是这样的,先给定一个正整数mmm和一个nnn个数序列BBB,一开始有一个棋子在BBB的第一个位置,并将B1B_1B1​减去111。此后双方轮流操作,每次操作,假设当前棋子在iii,可以把棋子移到一个位置jjj,满足j∈[i,min(i+m,n)]j\in[...

stoorz 445

【51nod】猴猴的比赛【dfs】

题目大意: 题目链接:https://www.51nod.com/Contest/Problem.html#contestProblemId=1150 猴猴今天要和小伙伴猩猩比赛爬树,为了公平不碰撞,猴猴和猩猩需要在不同的树上攀爬。于是它们选了两颗节点数同为n的树,并将两棵树的节点分别以1~n标号(根节点标号为1),但两棵树的节点连接方式不尽相同。 现在它们决定选择两个标号的点进行比赛。为了方便统...

stoorz 421
上一篇: 【牛客CSP-S提高组赛前集训营3】A - 货物收集【堆】
下一篇: 【P5253】丢番图【数论,数学】
stoorz1023
博客等级 码龄9年 101粉丝 595原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值