算法刷题day46

目录

  • 引言
  • 一、树的重心
  • 二、毕业旅行问题
  • 三、高精度乘法

引言

今天复习了一下高精度的所有模板,包括加法、减法、乘法、除法,因为自己当时在蓝桥杯的时候没有看出来那个题使用高精度,因为对于一个数的大小和一个数的长度,自己有时候搞不清楚概念,所以当时没看出来,一个数就算是 l o n g l o n g long\ long long long 也只有 18 、 19 18、19 1819 那么长,所以得记住这个概念。然后就是树形 D P DP DP 和状压 D P DP DP 了,做了已经很多遍了,已经慢慢的理解了其深层含义,所以还是要先多做题然后才能明白其内涵,以后打算把基础课的题全部刷一遍,好好巩固基础,加油!


一、树的重心

标签:dfs、树形DP

思路:思路就是求每一个结点去除后的最大值,然后在这些最大值里取最小值,如下图所示。这里的 d f s ( u ) dfs(u) dfs(u) 求得是 u u u 结点的向下的结点个数,我们可以先找到其每个分支的数量,因为删去该结点后,每个分支就是一个连通块,然后向上的一块,也是一个连通块,所以思路就是先对每一个向下的分支的连通块找最小值,然后同时求和,然后用总的结点数一减就是向上的连通块中的结点数,然后再对其求最小值,又因为这是一个递归过程,整个过程是从下往上解决的。然后为什么要建双向边,是因为不知道谁是谁的父节点,也不知道谁是根结点,同时判重,这样就可以只按照一个方向去递归了。

在这里插入图片描述

题目描述:

给定一颗树,树中包含 n 个结点(编号 1∼n)和 n−1 条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。输入格式
第一行包含整数 n,表示树的结点数。接下来 n−1 行,每行包含两个整数 a 和 b,表示点 a 和点 b 之间存在一条边。输出格式
输出一个整数 m,表示将重心删除后,剩余各个连通块中点数的最大值。数据范围
1≤n≤105
输入样例
9
1 2
1 7
1 4
2 8
2 5
4 3
3 9
4 6
输出样例:
4

示例代码:

#include <bits/stdc++.h>using namespace std;typedef long long LL;
typedef pair<int,int> PII;
#define x first
#define y secondconst int N = 1e5+10, M = N * 2, INF = 0x3f3f3f3f;int n, m;
int h[N], e[M], ne[M], idx;
bool st[N];
int ans = 2e9;void add(int a, int b)
{e[idx] = b, ne[idx] = h[a], h[a] = idx++;
}int dfs(int u)  // 找到包括u在内的分支数的和
{st[u] = true;  // 防止往回递归int sum = 1, size = 0;for(int i = h[u]; i != -1; i = ne[i]){int j = e[i];if(st[j]) continue;int t = dfs(j);sum += t;size = max(size, t);}size = max(size, n - sum);ans = min(ans, size);return sum;
}int main()
{ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);memset(h, -1, sizeof h);cin >> n;for(int i = 0; i < n - 1; ++i){int a, b; cin >> a >> b;add(a,b), add(b,a);  // 因为不知道谁是谁的父节点,也不知道谁是根}dfs(1);cout << ans << endl;return 0;
}

二、毕业旅行问题

标签:状态压缩DP

思路:就是定义一个状态 f [ i ] [ j ] f[i][j] f[i][j] 代表从已经走过 i i i 个城市,走过的城市编号为其二进制的 1 1 1 的位数,我们从 0 0 0 开始,最终到达 j j j 号城市的一个集合,那么状态转移方程为先经过 k k k 号城市,然后再到达 j j j 号城市,直接按顺序枚举即可。然后初始状态就是只经过 0 0 0 号城市,并且最终在该城市,花费为 0 0 0 ,即 f [ 1 ] [ 0 ] = 0 f[1][0] = 0 f[1][0]=0 ,然后只需要判断是否经过 j , k j,k j,k 等城市即可。

题目描述:

小明目前在做一份毕业旅行的规划。打算从北京出发,分别去若干个城市,然后再回到北京,每个城市之间均乘坐高铁,且每个城市只去一次。由于经费有限,小明希望能够通过合理的路线安排尽可能的省些路上的花销。给定一组城市和每对城市之间的火车票的价钱,找到每个城市只访问一次并返回起点的最小车费花销。注意:北京为 1 号城市。输入格式
第一行包含一个正整数 n,表示城市个数。接下来输入一个 n 行 n 列的矩阵,表示城市间的车票价钱。输出格式
输出一个整数,表示最小车费花销。数据范围
1<n≤20,包括北京车票价格均不超过 1000 元。输入样例:
4
0 2 6 5
2 0 4 4
6 4 0 2
5 4 2 0
输出样例:
13
说明
共 4 个城市,城市 1 和城市 1 的车费为 0,城市 1 和城市 2 之间的车费为 2,城市 1 和城市 3 之间的车费为 6,城市 1和城市 4 之间的车费为 5,以此类推。假设任意两个城市之间均有单程票可买,且价格均在 1000 元以内,无需考虑极端情况。

示例代码:

#include <bits/stdc++.h>using namespace std;typedef long long LL;
typedef pair<int,int> PII;
#define x first
#define y secondconst int N = 20, M = 1 << N;int n, m;
int w[N][N];
int f[M][N];int main()
{ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);cin >> n;for(int i = 0; i < n; ++i){for(int j = 0; j < n; ++j){cin >> w[i][j];}}memset(f, 0x3f, sizeof f);f[1][0] = 0;for(int i = 1; i < M; i += 2){for(int j = 0; j < n; ++j){if(i >> j & 1){for(int k = 0; k < n; ++k){if(i >> k & 1){f[i][j] = min(f[i][j], f[i-(1<<j)][k] + w[k][j]);}}}}}int res = 2e9;for(int i = 0; i < n; ++i){res = min(res, f[(1<<n)-1][i] + w[i][0]);}cout << res << endl;return 0;
}

三、高精度乘法

标签:高精度、模板题

思路:模板题没什么说的,值得注意的是,这个加法和乘法都涉及到进位,所以这个 A A A 遍历完了,有时最后刚好进位了,所以也要等 t t t 0 0 0 了才行,得判断一下。

题目描述:

给定两个非负整数(不含前导 0) A 和 B,请你计算 A×B 的值。输入格式
共两行,第一行包含整数 A,第二行包含整数 B。输出格式
共一行,包含 A×B 的值。数据范围
1≤A的长度≤100000,0≤B≤10000
输入样例:
2
3
输出样例:
6

示例代码:

#include <bits/stdc++.h>using namespace std;typedef long long LL;
typedef pair<int,int> PII;
#define x first
#define y secondconst int N = 1e5+10;int n, m;vector<int> mul(vector<int>& a, int b)
{vector<int> res;int t = 0;for(int i = 0; i < a.size() || t; ++i){if(i < a.size()) t += b * a[i];res.push_back(t % 10);t /= 10;}while(res.size() > 1 && res.back() == 0) res.pop_back();return res;
}int main()
{ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);string a; int b;cin >> a >> b;vector<int> A;for(int i = a.size() - 1; i >= 0; --i) A.push_back(a[i] - '0');auto res = mul(A,b);for(int i = res.size() - 1; i >= 0; --i) cout << res[i];cout << endl;return 0;
}

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

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

相关文章

通过Bedrock Access Gateway解决方案快速访问Amazon Bedrock的多种大语言模型

Bedrock Access Gateway&#xff08;BAG&#xff09;解决方案提供了开箱即用、兼容 OpenAI 的代理功能&#xff0c;帮助用户轻松无缝地从 OpenAI 迁移到 Amazon Bedrock。 1. 概述 亚马逊云科技的 Amazon Bedrock 服务支持一系列领先的基础模型&#xff0c;为客户提供多种选择…

基于卷积神经网络的垃圾图像分类系统研究与实现

1.摘要 垃圾分类作为资源回收利用的重要环节之一, 可以有效地提高资源回收利用效率, 进一步减轻环境污染带来的危害. 随着现代工业逐步智能化, 传统的图像分类算法已经不能满足垃圾分拣设备的要求. 本文提出一种基于卷积神经网络的垃圾图像分类模型 (Garbage Classification Ne…

索引的最左匹配原则

索引的最左匹配原则 我们先创建一张测试表&#xff0c;表的两个字段用来创建联合索引 CREATE TABLE test(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,col1 INT,col2 INT,col3 INT );CREATE INDEX idx_c1c2 ON test(col1, col2);现在我们就可以分析查询sql脚本了 1.使用联合索…

【SpringBoot整合系列】SpringBoot配置多数据源

目录 背景技术选型配置多数据源思路(以两个为例)代码实现1.导入依赖2.各自的配置 3.各自的dataSourcenews数据库的smbms数据库的注意&#xff1a;Primary注解 4.各自的SqlSessionFactory等news数据库的smbms数据库的 5.去掉启动类头上的MapperScan6.各自的mapper接口7.各自的ma…

分布移位下用于泛化的泛化的自监督测试时训练

Test-Time Training with Self-Supervision for Generalization under Distribution Shifts 论文链接 https://arxiv.org/abs/1909.13231 代码链接 Test-Time Training Project Website 发表于ICML2020 机构&#xff1a; UC Berkeley&#xff0c; UC San Diego 这张文章里的…

SpaceX的核心Fact Sheet

首先给大家分享一组SpaceX的关键数据&#xff0c;让大家对这个神秘公司有个定量认知&#xff1a; 2024年SpaceX预计收入可达130亿美金&#xff0c;同比增长54%&#xff0c;预计2035年可达1000亿美金 SpaceX目前已经处于盈利状态&#xff0c;具体利润规模未知 SpaceX的发射成本…

深入解析 Odoo 在线客服模块 (im_livechat)

深入解析 Odoo 在线客服模块 (im_livechat) Odoo Livechat 是一款集成于 Odoo 平台的实时在线客服系统&#xff0c;它赋予用户在网页界面上直接与客服人员进行即时沟通的能力。本文将逐步剖析 Livechat 的实现细节&#xff0c;从入口模板文件的加载机制&#xff0c;到后端初始…

Sectigo证书申请流程及价格介绍

Sectigo 是一家全球知名的数字证书颁发机构&#xff08;Certificate Authority, CA&#xff09;&#xff0c;自1998年起就开始提供 SSL 证书服务&#xff0c;是全球最早的 CA 机构之一。 一 Sectigo证书申请流程 1 确定证书类型 根据自身的需求确定证书的类型&#xff0c;一…

安全计算环境中,入侵防范的测评指标对应的测评对象包含哪些?

安全计算环境中&#xff0c;入侵防范的测评指标包括恶意代码防范、可信验证、数据完整性、数据保密性、数据备份恢复、剩余信息保护、个人信息保护等。 在安全计算环境中&#xff0c;入侵防范是确保系统不受未授权访问和破坏的关键措施。这涉及到多个方面的测评指标&#xff0…

IBM MQ 问题记录与解决

问题1&#xff1a; 报错&#xff1a; JMSWMQ2013:为队列管理器“QMXXX”提供的安全性认证无效&#xff0c;连接方式为“client”&#xff0c;主机名为“127.0.0.1(1417)”。 解决&#xff1a; (1)登录服务器 进入 IBM mq 所在目录 &#xff08;linux一般在/opt/mqm下 windo…

【001_音频开发-基础篇-专业术语】

001_音频开发-基础篇-专业术语 文章目录 001_音频开发-基础篇-专业术语创作背景术语表常见音源HDMI相关声音系统立体声2.1 声音系统5.1 环绕声系统5.1.2 环绕声系统7.1 环绕声系统7.1.4 环绕声系统9.1.4 环绕声系统 音质等级定义QQ音乐网易云音乐 创作背景 学历代表过去、能力…

如何启用启用WordPress调试模式

最近我们的WordPress网站在访问时&#xff0c;经常出现打不开的现象&#xff0c;我们向主机提供商Hostease咨询后&#xff0c;他们提到这是由于WordPress的某个插件导致的问题&#xff0c;我们在将插件版本升级至最新后&#xff0c;这个问题就消失了。为了方便后续的检查&#…

OceanBase 开发者大会 - 见闻与洞察

文章目录 前言主论坛见闻技术专场见闻产品技术专场技术生态专场 同行论道启发互动展区写在最后 前言 4 月 20 日&#xff0c;我有幸受邀参加了第二届 OceanBase 开发者大会。 50 余位业界知名数据库大咖和数据库爱好者&#xff0c;与来自全国近 600 名开发者相聚。共同探讨一体…

3DE DELMIA Role: EWD - Ergonomic Workplace Designer

Discipline: Ergonomics Role: EWD - Ergonomic Workplace Designer 设计安全高效的工作场所 Ergonomic Workplace Designer采用 Smart Posturing EngineTM技术&#xff08;用于自动和可重复的逼真人体模型定位&#xff09;和 Ergo4alITM技术&#xff08;用于应用程序内人体工…

2024年阿里云服务器最新活动价格表(含可选实例、配置、带宽)

2024年阿里云对云服务器活动中的价格和可选实例、配置、带宽和折扣等优惠政策又做升级调整&#xff0c;调整之后的云服务器最低价格只要99元起了&#xff0c;企业级2核4G5M带宽云服务器也只要199元/1年了&#xff0c;而且阿里云还额外推出了新购和续费同价的优惠政策。下面是小…

五一出游必备神器!华为nova 12 Ultra助你秒变旅行达人

五一假期终于要到了&#xff01;小伙伴们是不是都跃跃欲试&#xff0c;想要出去浪一浪呢&#xff1f;别急&#xff0c;别急&#xff0c;先让我给你安利一款出游神器——华为nova 12 Ultra&#xff0c;它可是集多种技艺于一身&#xff0c;让你在旅途中秒变旅行达人哦&#xff01…

CV每日论文--2024.4.23

1、InstantMesh: Efficient 3D Mesh Generation from a Single Image with Sparse-view Large Reconstruction Models 中文标题&#xff1a;InstantMesh&#xff1a;使用稀疏视图大型重建模型从单个图像高效生成 3D 网格 简介&#xff1a;本文介绍了InstantMesh&#xff0c;这…

Mysql用语句创建表/插入列【示例】

一、 创建表 COMMENT表示字段或列的注释 -- 新建student表 CREATE TABLE student (id BIGINT NOT NULL COMMENT 学生id, enroll_date DATE NOT NULL COMMENT 注册时间, NAME VARCHAR(18) DEFAULT NOT NULL COMMENT 学生姓名, deal_flag TINYINT(1) DEFAULT 0 NOT NULL COMM…

2024第十三届深圳国际营养与健康产业博览会

医疗展、健康展、养生展、医药展、中医展、艾灸展、营养展、保健展、康复展、医美展、养老展、婴童展、医美展、护理展、理疗展、智能中医、医疗器械、氢氧、营养保健、大健康、医药制药、养老康复、食药同源 2024第十三届深圳国际营养与健康产业博览会 THE 13TH SHENZHEN IN…

全新Storm Core API管理系统源码 免授权版

全新Storm Core API管理系统源码 免授权版 本系统为API系统,实现了api集成等基础功能,以后可能会更新key调用api,或者实现付费功能,敬请期待,前端模板均无加密,用户可自行二开,具体请看图 测试环境:PHP7.2+MySQL5.6 访问:http://你的域名/install 进行安装 伪静态…