#B. 部落联盟

news2024/11/23 4:32:45

一,题目

Description

在草原上有N个部落,每个部落都有其坐标(xi,yi)

每个部落都有个武力值可正可负

由于部落间只能通过马匹来传递信息

于是只有当两个部落间的距离为1的时候,两个部落才有可能进行联系,距离计算公式为

abs(xi-xj)+abs(yi-yj)

现在希望从N个部落中选出一些部落来,满足下面两个条件

1:它们是连通

2:它们的武力值加起来最大化

Format

Input

第1行是一个整数N(2 <= N <= 1000),表示部落的个数

以下N行中,第i行(1 <= i <= N)有三个整数,Xi, Yi, Ci依次表示第i部落的坐标与武力值

-10^6 <= Xi, Yi <= 10^6,-100 <= Ci <= 100。

Output

如题

Samples

输入数据 1

5

0 0 -2

0 1 1

1 0 1

0 -1 1

-1 0 1

输出数据 1

2

Hint

将给出的5个点全部选中


二,思路

我们来模拟一下我自己造的一个样例(横向为x,竖向为y,方框内的数字为(x,y)的武力值,圈起来的数字为节点编号):

step 1.连树的边

因为在这里只有当两个部落间的距离为1的时候,两个部落才有可能进行联系,所以联系可以看成将2个节点进行连边。那么具体做法就是暴力枚举i和j,判断第i个节点离第j个节点的距离是否等于1,等于1则对i,j进行连一条边权为1的边。

具体代码:

那么根据上述思路对前面造的样例进行操作的树如下(彩虹色标记的是第i个节点的武力值):

然后就要进行一波玄学般的dfs操作了。

step 2.dfs

首先我们在结构体中再加一个变量z储存以i为根的子树中选出满足题目要求的一些部落武力值之和

dfs的过程:首先将bll[beg].z初始化成他本身的武力值(因为在以beg为根的这棵子树自己一定会被选),然后将beg的vis标记成1表示已经遍历过beg了。然后遍历beg的子节点,并去重(自己已经经过了的点不需要再遍历),然后判断如果此时正在遍历的子节点z的值是正数接受该子树所选部落的最大武力值之和,将 bll[beg].z += bll[v].z,即可。

step 3.输出答案

最后的答案其实就是这n个节点的z的最大值


三,整体代码

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

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

相关文章

人生的喜悦、不快与成长,都在那一篇篇的文字中得到记录 | 2022 年终总结

又是一年的总结&#xff0c;不知道自己今年又该写点什么。但提笔总是好的&#xff0c;也算对今年的一个交代和对未来的一份期许。窗外的阳光正好&#xff0c;对面楼的敲打声叮叮咚咚&#xff0c;窗台上的两只猫睡得依旧奔放和舒适。这样一个看似美好的下午&#xff0c;一个平凡…

Internet Download Manager2023最好用的HTTP下载神器

Internet Download Manager 介绍2023最佳下载利器。Internet Download Manager (简称IDM) 是一款Windows 平台功能强大的多线程下载工具&#xff0c;国外非常受欢迎。支持断点续传&#xff0c;支持嗅探视频音频&#xff0c;接管所有浏览器&#xff0c;具有站点抓取、批量下载队…

机器学习100天(二十六):026 k近邻分类算法-理论

机器学习100天,今天讲的是:K 近邻分类算法-理论。 《机器学习100天》完整目录:目录 一、什么是 K 近邻算法 K 近邻算法也叫 KNN(k-Nearest Neighbor)算法,它是一个比较成熟也是最简单的机器学习算法之一。K 近邻分类算法的思路是:如果一个样本在特征空间中与 K 个实例最…

FastAPI集成Socket.io坑点汇集和技术选型

背景 单纯的 websocket 通信方式存在大量的辅助性的工作需要处理&#xff0c;例如心跳机制、粘包处理、协议规范等&#xff0c;所以直接使用 websocket 开发&#xff0c;等于重复造轮子&#xff0c;毫无价值&#xff0c;而 socket.io 整理了一整套规范和机制&#xff0c;可以满…

DSP-频域中的离散时间信号

目录 连续和离散时间傅里叶变换: 四种常用的傅立叶变换: 连续时间傅立叶变换(FT): 离散时间傅里叶变换(DTFT): 对称关系: DTFT的收敛条件: 常用DTFT对&#xff1a; DTFT的性质&#xff1a; 线性&#xff1a; 时间反转&#xff1a; 时移&#xff1a; 频移&#xff1a…

鲁大师2022牛角尖颁奖盛典落幕,各大硬件厂商齐聚襄阳

1月4日&#xff0c;鲁大师2022年度牛角尖颁奖晚会在湖北襄阳成功举办。 鲁大师的”牛角尖”奖是由过去一年上亿用户通过鲁大师测试得到的真实数据&#xff0c;以及鲁大师实验室通过专业的测试规范共同缔造的硬件奖项。颁发给的都是各大PC、手机、电动车领域最优秀、最顶尖的产…

【自学Python】Python HelloWorld

Windows Python HelloWorld Windows Python HelloWorld 教程 使用记事本&#xff0c;新建一个 helloworld.py 文件&#xff0c;输入以下内容&#xff1a; print(嗨客网(www.haicoder.net))打开命令行&#xff0c;进入到 helloworld.py 文件所在目录&#xff0c;输入以下命令…

干货 | 移动端App自动化之App控件定位

客户端的页面通过 XML 来实现 UI 的布局&#xff0c;页面的 UI 布局作为一个树形结构&#xff0c;而树叶被定义为节点。这里的节点也就对应了我们要定位的元素&#xff0c;节点的上级节点&#xff0c;定义了元素的布局结构。在 XML 布局中可以使用 XPath 进行节点的定位。App的…

Spring项目

1.创建一个Java项目 名字为Test_SM_1 2.导包 Java项目&#xff0c;用快捷方式的方法导入 web项目用复制的方式 一共8个包&#xff0c;前两个是通用jar包&#xff0c;Spring相关的jar包有4个&#xff0c;mybatis的jar包有1个&#xff0c;mysql的jar包连接数据库 3. 复原一个MyB…

Rabbitmq消息队列详解(一)——基础介绍

安装rabbitmq 本机&#xff1a; http://erlang.org.download/otp_win64_21.3.exe 一直next https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.14/:rabbitmq-server-3.7.14.exe 全选&#xff0c;next 进入RabbitMQ安装目录下的sbin目录 rabbitmq-plugins enable …

实操!用Zabbix+500元硬件如何平替5万元动环检测系统,实现UPS温湿度烟雾等数据采集存储、告警、大屏展示?

感谢本文作者 王志杰 。诚邀社区伙伴积极投稿&#xff01; 前提 ►架构展示&#xff1a; ►大屏展示&#xff1a; ►所需软件&#xff1a; Zabbix Grafana 安装Zabbix-agent2的采集服务器 MThings串口调试软件 厂家自带UPS监控软件 USR-VCOM有人虚拟串口软件 ►所需硬件&a…

maven第二篇:IDE创建maven项目

前面将maven安装好了&#xff0c;当然起不会直接用&#xff0c;而是结合着一起用&#xff0c;那么现在就用IDE创建一个maven&#xff0c;来进行演示。 前提 IDE默认是带有maven软件&#xff0c;但是一般不习惯用起自带的&#xff0c;所以前提就是安装一个maven软件&#xff0…

HUAWEI CLOUD Stack 私有云解决方案(HCS)

HUAWEI CLOUD Stack 私有云解决&#xff08;HCS&#xff09; 注明&#xff1a; 本文介绍的版本为HUAWEI CLOUD Stack 6.5&#xff08;也叫华为云Stack或HCS&#xff09;&#xff0c; 在华为6.5版本以前的名字是FusionCloud 6.3&#xff0c; 最近更新的8.0版本不会差别太大&…

Java开发学习(三十九)----SpringBoot整合mybatis

一、回顾Spring整合Mybatis Spring 整合 Mybatis 需要定义很多配置类 SpringConfig 配置类 导入 JdbcConfig 配置类 导入 MybatisConfig 配置类 Configuration ComponentScan("com.itheima") PropertySource("classpath:jdbc.properties") Import({JdbcC…

Trie 字典树

Trie Trie&#xff0c;又称字典树或前缀树。是一棵有根的多叉树。用于高效存储和查找字符串集合。 字典树从根到树上某一结点的路径就是一个字符串。 一棵字典树的构造过程图解&#xff1a; 字典树的度和字符集有关&#xff0c;英文字符集是26个字母&#xff0c;那么字典树的…

通用vue组件化登录页面

一、首页设置大体的样式布局 1.首先建立一个login文件夹&#xff0c;在里面建立对应的login.vue文件 2.设置登录页面的背景图&#xff0c;在App.vue文件中使用router-view进行展示登录组件 3.先给App.vue的div元素设置高度100%&#xff0c;之后在login.vue里面去设置背景图 …

财务管理系统|基于Springboot开发实现公司财务管理系统

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容&#xff1a;Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

知识库软件应该具备的7个基本功能

SaaS公司最大的业务挑战是&#xff1a;如何留住客户&#xff0c;客户与你达成合作关系后&#xff0c;如何让其与你继续合作&#xff0c;达成长期合作关系。对于SaaS产品&#xff0c;丢失客户的成本是很昂贵的&#xff0c;赢得一个新客户的成本是留住现有客户的5到25倍&#xff…

Vue脚手架的使用

一、通过命令行使用vue-cli的指令创建 1. 安装&#xff1a;npm i -g vue/cli-init 2. 创建Vue项目&#xff08;Vue2.0项目&#xff09;&#xff1a; ​ &#xff08;1&#xff09;创建文件夹&#xff1a;vue2-demo ​ &#xff08;2&#xff09;进入文件夹&#xff1a;cd v…

[Leetcode] 相交链表

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。图示两个链表在节点 c1 开始相交&#xff1a;题目数据保证整个链式结构中不存在环。注意&#xff0c;函数返回结果后&#xf…