8.9套题

news2024/9/20 5:52:29

A. 猴猴吃苹果

题意:给定根节点k,求访问点的顺序,使得每次从上一个点到当前点的权值最大。访问过的点权值为0。权值一样时,输出最小编号

思路:由于是双向边,先求根节点到每一个节点的距离值。在第一轮中,最深的叶节点一定为答案,那么这一条路径就被访问过了,权值变为0,这个叶节点相同路径上的其他点到根节点(最后一个未被标记的点)的权值就改变了。所以从最优的叶节点出发,dfs往上跳,直到访问到已经被访问过的点为止即可。最后排序更新后的权值

#include<bits/stdc++.h>

using namespace std;

const int N = 1e6 + 10;

int n,k,d[N],tot;
bool vis[N];
struct node{
	int id,val;
}a[N];
vector<int> v[N];
inline bool cmp(node p,node q){
	if(p.val!=q.val)  return p.val>q.val;
	else return p.id<q.id;
}
void dfs1(int p,int fa){
	for(int t:v[p]){
		if(t==fa)  continue;
		d[t]=d[p]+1;
		dfs1(t,p);
	}
}
void dfs2(int p,int fa){
	if(vis[p])  return;
	tot++;
	vis[p]=true;
	for(int t:v[p]){
		if(t==fa||d[t]>=d[p])  continue;
		dfs2(t,p);
	}
}
int main(){
	cin>>n>>k;
	for(int i=1,x;i<n;i++){
		cin>>x;
		v[i].push_back(x);
		v[x].push_back(i);
	}
    dfs1(k,-1);vis[k]=true;
    for(int i=0;i<n;i++){
    	a[i].id=i;a[i].val=d[i];
	}
	sort(a,a+n,cmp);
//	for(int i=0;i<n;i++)  cout<<a[i].id<<" ";
    for(int i=0;i<n;i++){
    	tot=0;
    	dfs2(a[i].id,-1);
    	a[i].val=tot;
//    	cout<<tot<<" "<<a[i].id<<endl;
	}
	sort(a,a+n,cmp);
	cout<<k<<endl;
	for(int i=0;i<n;i++){
		if(a[i].val)
		  cout<<a[i].id<<endl;
	}
	return 0;
}

B. 猴猴吃香蕉

题意:选取n个数中的若干个数,使得它们的乘积为k

思路:计数dp,容易得出f[j]+=f[j/a[i]]的转移方程式。使得a[i]为组成k的一个因子。由于k的范围不可接受,于是筛出k的所有因子,如果a[i]/x能整除,说明这个数能被分解。f[j]+=f[a[i]/t[j]],由于因子较大,且个数趋近根号n,需要离散化

最终dp方程:f[j]+=f[pos[a[i]/t[j]]],答案为f[pos[k]]

C. 猴猴的比赛

题意:给定两棵树,求一个节点x在两棵树中有相同祖先的对数

思路:考虑求出每一个点的子树中的范围[L,R](连续的),对于另一颗树而言,每次处理一个点答案计数完成后,就将这个点在第一棵树中的位置标记为1。答案计数为所有父节点[L,R]中1的数量。注意在遍历子节点时,需要减去子树所有点的[L,R]中1的数量,防止重复运算

核心代码:

void dfs2(int p,int fa){
	//L[p]为点p的dfn序
	for(int t:g[p]){
		if(t==fa)  continue;
		ans-=BIT.query(R[t])-BIT.query(L[t]);
		dfs2(t,p);
	} 
	ans+=BIT.query(R[p])-BIT.query(L[p]);//整个子树 
	BIT.add(L[p],1);
}

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

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

相关文章

WPF篇(3)- WrapPanel控件(瀑布流布局)+DockPanel控件(停靠布局)

WrapPanel控件&#xff08;瀑布流布局&#xff09; WrapPanel控件表示将其子控件从左到右的顺序排列&#xff0c;如果第一行显示不了&#xff0c;则自动换至第二行&#xff0c;继续显示剩余的子控件。我们来看看它的结构定义&#xff1a; public class WrapPanel : Panel {pub…

rocketMQ5.0事务消息实战

事务消息逻辑 首先我们来docker 部署rocketMQ与rocketMQDashBoard docker ps查看rocketMQ 容器名称 docker ps 进入容器内部 docker exec -it rmqnamesrv /bin/bash 创建事务消息 sh mqadmin updateTopic -c DefaultCluster -t TRANSACTIONTopic -n 127.0.0.1:9876 -a mes…

Python开源项目月排行 2024年7月

#2024年7月2024年8月2日1the-art-of-command-line一个全面而简洁的命令行使用指南。它旨在帮助工程师提高在命令行环境下的熟练程度和生产力。项目涵盖了从基础到高级的各种命令行技巧和知识&#xff0c;项目的内容涵盖了基础知识、日常使用、文件处理、系统调试等多个方面&…

图像自动化保存工具:Python脚本开发指南

引言 在数字化时代&#xff0c;图像已成为信息传递的重要媒介。无论是社交媒体、新闻网站还是电子商务平台&#xff0c;图像的自动化处理和保存都是提升用户体验和工作效率的关键。本文将深入探讨如何使用Python脚本实现从百度图片等搜索引擎批量下载并保存图像文件的高级应用…

第36集《大佛顶首楞严经》

请大家打开讲义第八十页&#xff0c;子三&#xff0c;明鼻识界即藏性。 蕅益大师讲到&#xff0c;我们修学大乘佛法&#xff0c;有一句话是很重要的。他说&#xff1a;“未开圆解&#xff0c;不应辄论修证。”说一个菩萨你没有真正地大彻大悟开圆顿解&#xff0c;你没有资格谈…

K8s问题案例分析

1.worker节点宕机&#xff0c;请说明一下pod的驱逐流程&#xff1a; k8s有一个节点控制器&#xff0c;节点控制器在一段时间内无法和kubelet通信&#xff0c;那么就会给节点打上unknown 状态&#xff0c;并自动创建NoExecute污点,避免调度器调度新的pod到该节点。同时已经在这…

2024年6月scratch图形化编程等级考试三级真题

202406 青少年软件编程等级考试Scratch三级真题 试卷总分数&#xff1a;100分 考试时长&#xff1a;60 分钟 第 1 题 运行程序后&#xff0c;角色的x坐标是&#xff1f;&#xff08; &#xff09; A&#xff1a;99 B&#xff1a;100 C&#xff1a;199 D&#xff1a;200 正…

Shell 脚本中的循环语句、函数与数组

文章目录 Shell 脚本中的循环语句、函数与数组1. for 循环1.1 for 循环语法结构1.1.1 列表循环1.1.2 不带列表循环1.1.3 类C风格的for循环 1.2 案例1.2.1 打印1-5这5个数字1.2.2 打印5次hello world1.2.3 打印abcde1.2.4 输出0-50之间的偶数 1.3 小技巧&#xff1a;花括号 {} 和…

力扣爆刷第171天之TOP200五连刷121-125(跳跃游戏、买卖股票、旋转链表)

力扣爆刷第171天之TOP200五连刷121-125&#xff08;跳跃游戏、买卖股票、旋转链表&#xff09; 文章目录 力扣爆刷第171天之TOP200五连刷121-125&#xff08;跳跃游戏、买卖股票、旋转链表&#xff09;一、55. 跳跃游戏二、123. 买卖股票的最佳时机 III三、排序奇升偶降链表四、…

【mysql 第四篇章】bin log 的作用是啥呢?

一、redo Log 介绍 redo log 是一种偏向物理性质的重做日志&#xff0c;因为他里面记录类似的这样的东西&#xff0c;“对那个数据也中的什么记录&#xff0c;做了个什么修改”。它是 InnoDB 存储引擎特有的东西。 二、bin Log 日志 bin log 叫做归档日志&#xff0c;它里面…

pytorch多GPU训练简明教程

1. Torch 的两种并行化模型封装 1.1 DataParallel DataParallel 是 PyTorch 提供的一种数据并行方法&#xff0c;用于在单台机器上的多个 GPU 上进行模型训练。它通过将输入数据划分成多个子部分&#xff08;mini-batches&#xff09;&#xff0c;并将这些子部分分配给不同的 G…

软件测试面试200问(含答案+文档)

1、你的测试职业发展是什么&#xff1f; 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求自己&…

旋转图像

旋转图像 思路&#xff1a; 第一意识是找一个数学规律&#xff0c;一个公式可以找到对应的位置。 唉 想不出 没啥思路 看题解了。 一看就懂了 规律就是。。。。。。&#xff1a;原来第 i 行第 j 列的元素 在旋转后 会在第 j 行倒数第i列。 这种题目做少了&#xff0c;多做…

正点原子安装buildroot构建根文件系统

1&#xff1a;何为 buildroot&#xff1f; 1.1&#xff1a;buildroot 简介 在《第三篇 系统移植篇》我们最后讲解了如何使用 busybox 构建文件系统&#xff0c;busybox 仅仅 只是帮我们构建好了一些常用的命令和文件&#xff0c;像 lib 库、/etc 目录下的一些文件都需要我们自…

初识Spring、SpringIOC

Spring 一、什么是Spring框架&#xff1f;(重要) ---对Spring的理解 记忆关键字&#xff1a;1.核心思想&#xff08;IOC、AOP&#xff09; 2.作用&#xff08;解耦、简化&#xff09; 3.简单描述框架组成 答&#xff1a;定义&#xff1a;Spring是一个轻量级的控制反转(IoC)和…

SpringBoot中解决文件application.properties中文注释乱码的问题

如图看到中文注释乱码 很影响代码的阅读 原因是字符编码使用了ISO-8859-1 这里演示如何在idea里面把ISO-8859-1改为UTF-8 点击右上角设置 搜索框输入UTF-8 把默认的改成UTF-8就行了 可以看到中文注释正常显示 希望能够点点赞和收藏&#xff01;&#xff01;

猫咪浮毛大作战!希喂、安德迈宠物空气净化器PK,实测数据大公开

宠物空气净化器作为宠物领域的新产品&#xff0c;凭借自身独特的功能受到铲屎官们的喜爱&#xff0c;越来越多的商家关注到这个市场。然而&#xff0c;市面上品牌逐渐增多&#xff0c;质量却参差不齐&#xff0c;一些不良商家以次充好&#xff0c;容易让消费者陷入消费陷阱。因…

PHYS_OPT_MODIFIED

当对原始单元执行物理优化时&#xff0c;PHYS_OPT_MODIFIED 更新单元的属性以反映对单元执行的优化。什么时候&#xff1f; 对同一单元格执行多次优化&#xff0c;PHYS_OPT_MODIFIED值 包含按发生顺序排列的优化列表。 架构支持 所有架构。 适用对象 PHYS_OPT_MODIFIED属性放置…

Linux嵌入式学习——C++学习(2)

一、标识符的作用域和可见性 &#xff08;一&#xff09;作用域 1、全局作用域 在函数外部声明的变量和函数具有全局作用域。这些变量和函数在程序的任何地方都可以被访问。 2.局部作用域 在函数内部、循环体内部或条件语句内部声明的变量具有局部作用域。这些变量只能在其…

<数据集>航拍屋顶识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;3516张 标注数量(xml文件个数)&#xff1a;3516 标注数量(txt文件个数)&#xff1a;3516 标注类别数&#xff1a;1 标注类别名称&#xff1a;[roof] 序号类别名称图片数框数1roof351643938 使用标注工具&#xf…