练习题(2025.2.9)
题目背景
“咚咚咚……”“查水表!”原来是查水表来了,现在哪里找这么热心上门的查表员啊!小明感动得热泪盈眶,开起了门……
题目描述
妈妈下班回家,街坊邻居说小明被一群陌生人强行押上了警车!妈妈丰富的经验告诉她小明被带到了 tt 区,而自己在 ss 区。
该市有 mm 条大道连接 nn 个区,一条大道将两个区相连接,每个大道有一个拥挤度。小明的妈妈虽然很着急,但是不愿意拥挤的人潮冲乱了她优雅的步伐。所以请你帮她规划一条从 ss 至 tt 的路线,使得经过道路的拥挤度最大值最小。
输入格式
第一行有四个用空格隔开的 nn,mm,ss,tt,其含义见【题目描述】。
接下来 mm 行,每行三个整数 u,v,wu,v,w,表示有一条大道连接区 uu 和区 vv,且拥挤度为 ww。
两个区之间可能存在多条大道。
输出格式
输出一行一个整数,代表最大的拥挤度。
输入输出样例
输入 #1复制
3 3 1 3 1 2 2 2 3 1 1 3 3
输出 #1复制
2
说明/提示
数据规模与约定
-
对于 30% 的数据,保证 n≤10。
30%
n≤10
-
对于 60% 的数据,保证 n≤100。
60%
n≤100
-
对于 100% 的数据,保证 1≤n≤104,1≤m≤2×104,w≤104,1≤s,t≤n。且从 s 出发一定能到达 t 区。
100%
1≤n≤104
1≤m≤2×104
w≤104
1≤s,t≤n
s
t
样例输入输出 1 解释
小明的妈妈要从 11 号点去 33 号点,最优路线为 11->22->33。
接上昨天邻接表的写法
kruskal的做法在昨天的总结中
源代码:
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
const int M = 2e4 + 5;
int n, m, s, t;
int dist[M];
bool vis[M];
vector<pair<int, int>> g[M];
int prim() {for (int i = 1; i <= m; i++) {dist[i] = 1e9;}dist[s] = 0;int MAX_min = 0;for (int i = 1; i <= m; i++) {int p = -1;for (int j = 1; j <= m; j++) {if (!vis[j] && (p == -1 || dist[p] > dist[j]))p = j;}if (dist[p] == 1e9)return 1e9;vis[p] = 1;MAX_min = max(MAX_min, dist[p]);if (p == t)return MAX_min;for (const auto& edge : g[p]) {int to = edge.first;int w = edge.second;dist[to] = min(dist[to], w);}}return -1;
}
int main() {cin >> n >> m >> s >> t;for (int i = 1; i <= m; i++) {int u, v, w;cin >> u >> v >> w;g[u].emplace_back(v, w);g[v].emplace_back(u, w);}int y = prim();cout << y;return 0;
}
题目描述
又到了一年一度的明明生日了,明明想要买 BB 样东西,巧的是,这 BB 样东西价格都是 AA 元。
但是,商店老板说最近有促销活动,也就是:
如果你买了第 II 样东西,再买第 JJ 样,那么就可以只花 KI,JKI,J 元,更巧的是,KI,JKI,J 竟然等于 KJ,IKJ,I。
现在明明想知道,他最少要花多少钱。
输入格式
第一行两个整数,A,BA,B。
接下来 BB 行,每行 BB 个数,第 II 行第 JJ 个为 KI,JKI,J。
我们保证 KI,J=KJ,IKI,J=KJ,I 并且 KI,I=0KI,I=0。
特别的,如果 KI,J=0KI,J=0,那么表示这两样东西之间不会导致优惠。
注意 KI,JKI,J 可能大于 AA。
输出格式
一个整数,为最小要花的钱数。
输入输出样例
输入 #1复制
1 1 0
输出 #1复制
1
输入 #2复制
3 3 0 2 4 2 0 2 4 2 0
输出 #2复制
7
说明/提示
样例解释 22。
先买第 22 样东西,花费 33 元,接下来因为优惠,买 1,31,3 样都只要 22 元,共 77 元。
(同时满足多个“优惠”的时候,聪明的明明当然不会选择用 44 元买剩下那件,而选择用 22 元。)
数据规模
对于 30%30% 的数据,1≤B≤101≤B≤10。
对于 100%100% 的数据,1≤B≤500,0≤A,KI,J≤10001≤B≤500,0≤A,KI,J≤1000。
2018.7.25新添数据一组
思路:把价格看成边权,位置看成点
源代码:
#include<iostream>
#include<algorithm>
using namespace std;
const int B = 505;
struct dists {int u, v, w;
}dist[B * B];
int a, b, k = 0, u = 0;
int NEXT[B * B];
int ans = 0;
int find(int x) {if (x != NEXT[x])return NEXT[x] = find(NEXT[x]);return NEXT[x];
}
void Union(int x, int y) {int fx = find(x);int fy = find(y);if (fx != fy)NEXT[fy] = fx;
}
bool cmp(const dists x, const dists y) {return x.w < y.w;
}
int main() {cin >> a >> b;for (int i = 0; i < B*B; i++)NEXT[i] = i;for (int i = 1; i <= b; i++) {for (int j = 1; j <= b; j++) {cin >> dist[++k].w;dist[k].u = i;dist[k].v = j;if (dist[k].w == 0)dist[k].w = a;}}sort(dist + 1, dist + k + 1, cmp);ans += a;for (int i = 1; i <= k; i++) {if (find(dist[i].u) != find(dist[i].v)) {Union(dist[i].u, dist[i].v);if (dist[i].w < a)ans += dist[i].w;elseans += a;b--;if (b == 0)break;}}cout << ans;return 0;
}
问题描述
有一个 SNS 被 NN 个用户使用,他们的编号从 11 到 NN。
在这个 SNS 中,两个用户可以成为朋友。
友谊是双向的;如果用户 X 是用户 Y 的朋友,那么用户 Y 也一定是用户 X 的朋友。
目前,在 SNS 上有 MM 对朋友关系,第 ii 对由用户 AiAi 和用户 BiBi 组成。
确定可以执行以下操作的最大次数:
- 操作:选择三个用户 X、Y 和 Z,使得 X 和 Y 是朋友,Y 和 Z 是朋友,但 X 和 Z 不是朋友。让 X 和 Z 成为朋友。
约束条件
-
2≤N≤2×1052≤N≤2×105
-
0≤M≤2×1050≤M≤2×105
-
1≤Ai<Bi≤N1≤Ai<Bi≤N
-
这些对 是不同的。
(Ai,Bi)(Ai,Bi)
-
所有输入值都是整数。
输入
输入以以下格式从标准输入给出:
NNMMA1A1B1B1⋮⋮AMAMBMBM
输出
输出答案。
示例 1
Inputcopy | Outputcopy |
---|---|
`4 3 | |
1 2 | |
2 3 | |
1 4` | 3 |
可以发生三次新的朋友关系,方法如下:
-
用户 和他们的朋友(用户 )的朋友(用户 )成为朋友
11
22
33
-
用户 和他们的朋友(用户 )的朋友(用户 )成为朋友
33
11
44
-
用户 和他们的朋友(用户 )的朋友(用户 )成为朋友
22
11
44
不会有四次或更多的新朋友关系。
示例 2
Inputcopy | Outputcopy |
---|---|
3 0 | 0 |
如果没有初始的朋友关系,就不会发生新的朋友关系。
示例 3
Inputcopy | Outputcopy |
---|---|
`10 8 | |
1 2 | |
2 3 | |
3 4 | |
4 5 | |
6 7 | |
7 8 | |
8 9 | |
9 10` | 12 |
错误代码:不知道错哪了求大佬教一教QWQ
#include<iostream>
#include<algorithm>
using namespace std;
const int M = 2e5 + 5;
int NEXT[M];
int vis[M], bj[M];
int n, m, u, v;
int ans = 0;
int val[1000];
int find(int x) {if (x != NEXT[x])return NEXT[x] = find(NEXT[x]);return NEXT[x];
}
void Union(int x, int y) {if (find(x) != find(y))NEXT[find(y)] = find(x);
}
int sy(int a[], int x,int n) {for (int i = 0; i < n; i++) {if (a[i] == x)return 1;}return 0;
}
int main() {cin >> n >> m;for (int i = 0; i <= n; i++)NEXT[i] = i;for (int i = 1; i <= m; i++) {cin >>u >> v;Union(u, v);}for (int i = 1; i <= n; i++)vis[i] = find(i);int k = 1;for (int i = 1; i <= n; i++) {if (!sy(bj, vis[i], k)) {val[k - 1] = i - 1;bj[k++] = vis[i];}}val[k-1] = n;for (int i = 0; i < k - 1; i++) {int c = val[i + 1] - val[i];ans += c * (c - 1) / 2;}cout << ans - m;return 0;
}
相关文章:
练习题(2025.2.9)
题目背景 “咚咚咚……”“查水表!”原来是查水表来了,现在哪里找这么热心上门的查表员啊!小明感动得热泪盈眶,开起了门…… 题目描述 妈妈下班回家,街坊邻居说小明被一群陌生人强行押上了警车!妈妈丰富…...
【练习】PAT 乙 1074 宇宙无敌加法器
题目 地球人习惯使用十进制数,并且默认一个数字的每一位都是十进制的。而在PAT星人开挂的世界里,每个数字的每一位都是不同进制的,这种神奇的数字称为“PAT数”。每个PAT星人都必须熟记各位数字的进制表,例如“……0527”就表示最…...

网络防御高级02-综合实验
web页面: [FW]interface GigabitEthernet 0/0/0 [FW-GigabitEthernet0/0/0]service-manage all permit 需求一,接口配置: SW2: [Huawei]sysname SW2 1.创建vlan [sw2]vlan 10 [sw2]vlan 20 2.接口配置 [sw2]interface GigabitEther…...
UITableView的复用原理
UITableView复用的基本原理是Cell复用机制,它通过重用已经创建的Cell来减少内存开始并提高性能,避免频繁创建和销毁Cell。 复用的流程 1.队列管理 UITableView维护一个可复用队列(reuse queue),存储离屏的UITableVi…...
SQL条件分支中的大讲究
在SQL中,条件分支用于根据不同的条件执行不同的操作,适用于数据查询、数据更新以及存储过程等场景。合理使用SQL条件分支,可以优化数据操作流程,提高代码的可读性和可维护性。 目录 1. 逻辑判断的基本概念 2. CASE 语句…...

Cherry Studio:一站式多模型AI交互平台深度解析 可配合大模型搭建私有知识库问答系统
Cherry Studio:一站式多模型AI交互平台深度解析 可配合大模型搭建私有知识库问答系统 大模型本地化部署流程可查看文章 3分钟教你搭建属于自己的本地大模型 DeepSeek Cherry Studio地址:https://cherry-ai.com/download Cherry Studio 简介 Cherry S…...

工业相机,镜头的选型及实战
工业相机和镜头的选型是机器视觉系统中的关键步骤,选型不当可能导致成像质量差或系统性能不达标。(用于个人的学习和记录) 一、工业相机选型方法 确定分辨率 分辨率需求:根据被测物体的尺寸和检测精度要求计算所需分辨率。 公式…...
C++模板学习从专家到入门:关键字typename与class
文章目录 共同点typename特性class特性 共同点 在定义类模板或者函数模板时,typename 和 class 关键字都可以用于指定模板参数中的类型。 template <class T> template <typename T>typename特性 C 允许在类内定义类型别名,且其使用方法与…...

BFS算法篇——FloodFill问题的高效解决之道(下)
文章目录 前言一. 图像渲染1.1 题目链接:https://leetcode.cn/problems/flood-fill/description/1.2 题目分析:1.3 思路讲解:1.4 代码实现: 二. 岛屿数量2.1 题目链接:https://leetcode.cn/problems/number-of-islands…...
Android性能优化
Android性能优化 如何优化一个包含大量图片加载的Android应用,以提高性能和用户体验? 优化一个包含大量图片加载的Android应用,可以从以下几个方面入手,以提高性能和用户体验: 选择合适的图片加载库 使用成熟的图片…...
1、http介绍
一、HTTP 和 HTTPS 简介 HTTP(HyperText Transfer Protocol) 用途:用于网页数据传输(不加密)。协议特性:以明文形式传输数据,默认端口 80,无身份验证和完整性保护。典型场景…...
2.6 寒假训练营补题
C Tokitsukaze and Balance String (hard) 题目描述 本题为《Tokitsukaze and Balance String (easy)》的困难版本,两题的唯一区别在于 n n n 的范围。 一个字符串是平衡的,当且仅当字符串中 "01" 连续子串的个数与 "10" 连续子…...
kafka生产者之发送模式与ACK
文章目录 Kafka的发送模式Kafka的ack机制发送模式与ack的关联重试次数总结 在Kafka中,发送模式与ack机制紧密相关,它们共同影响着消息发送的可靠性和性能。 Kafka的发送模式 发后即忘(Fire and Forget):生产者发送消息…...
笔记:蓝桥杯python搜索(3-2)——DFS剪支和记忆化搜索
目录 一、DFS剪支 二、例题 P2942 数字王国之军训军队 P3075 特殊的多边形 三、记忆化搜索 四、例题 例题 P3820 混境之地 P216 地宫取宝 一、DFS剪支 在搜索过程中,如果需要完全遍历所有情况可能需要很多时间在搜索到某种状态时,根据当前状态判断…...

ChatBox+硅基流动Deepseek_R1开源API 满血(671B)部署教程,全程干货无废话
DeepSeek开源深度推理模型火爆发布,网络流量过大经常导致服务器崩溃,所以一般有两种方法解决这个问题 如果你的硬件支持,或者保密文档,保密单位,那么可以部署在本地端。但是再好的电脑也不能让DS满血复活,…...

35~37.ppt
目录 35.张秘书-《会计行业中长期人才发展规划》 题目 解析 36.颐和园公园(25张PPT) 题目 解析 37.颐和园公园(22张PPT) 题目 解析 35.张秘书-《会计行业中长期人才发展规划》 题目 解析 插入自定义的幻灯片:新建幻灯片→重用…...

畅快使用DeepSeek-R1的方法
腾讯云API接入Cherry Studio简明指南-畅快使用DeepSeek-R1 注意:腾讯云API针对deepseek限时免费(后续即使收费也较为便宜,可以作为长期使用的方法),并且比华为的API要快不少。 一、获取腾讯云API密钥 登录并进入腾讯…...
【人工智能】Python中的序列到序列(Seq2Seq)模型:实现机器翻译
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 序列到序列(Seq2Seq)模型是自然语言处理(NLP)中一项核心技术,广泛应用于机器翻译、语音识别、文本摘要等任务。本文深入探讨Seq2Seq模…...

【算法】动态规划专题⑥ —— 完全背包问题 python
目录 前置知识进入正题模板 前置知识 【算法】动态规划专题⑤ —— 0-1背包问题 滚动数组优化 完全背包问题是动态规划中的一种经典问题,它与0-1背包问题相似,但有一个关键的区别:在完全背包问题中,每种物品都有无限的数量可用。…...

记一次基于manifest v3开发谷歌插件
背景 头疼在国际化功能普遍的前端项目中,如果你在处理或者在某一块功能上新增一些需求的时候,在没有国际化功能的页面中,我们随便复制一些文本,然后在vs code中全局搜索,很快就可以找到所要更改的代码文件在哪里&…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
PostgreSQL 与 SQL 基础:为 Fast API 打下数据基础
在构建任何动态、数据驱动的Web API时,一个稳定高效的数据存储方案是不可或缺的。对于使用Python FastAPI的开发者来说,深入理解关系型数据库的工作原理、掌握SQL这门与数据库“对话”的语言,以及学会如何在Python中操作数据库,是…...