练习题(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中全局搜索,很快就可以找到所要更改的代码文件在哪里&…...

C# OpenCvSharp 部署MOWA:多合一图像扭曲模型
目录 说明 效果 项目 代码 下载 参考 C# OpenCvSharp 部署MOWA:多合一图像扭曲模型 说明 算法模型的paper名称是《MOWA: Multiple-in-One Image Warping Model》 ariv链接 https://arxiv.org/pdf/2404.10716 效果 Stitched Image 翻译成中文意思是&…...

本地部署DeepSeek-R1模型(新手保姆教程)
背景 最近deepseek太火了,无数的媒体都在报道,很多人争相着想本地部署试验一下。本文就简单教学一下,怎么本地部署。 首先大家要知道,使用deepseek有三种方式: 1.网页端或者是手机app直接使用 2.使用代码调用API …...

神经网络常见激活函数 5-PReLU函数
文章目录 PReLU函数导函数函数和导函数图像优缺点pytorch中的PReLU函数tensorflow 中的PReLU函数 PReLU 参数化修正线性单元:Parametric ReLU 函数导函数 PReLU函数 P R e L U { x x > 0 α x x < 0 ( α 是可训练参数 ) \rm PReLU \left\{ \begin{array}{} x \qua…...

2025我的第二次社招,写在春招之季
先说一个好消息,C那些事 4w star了! 前面断更了一个月,本篇文章就可以看到原因,哈哈。 大家好,我叫光城,腾讯实习转正做后端开发,后去小公司做数据库内核,经过这几年的成长与积累&am…...

Visual Studio Code中文出现黄色框子的解决办法
Visual Studio Code中文出现黄色框子的解决办法 一、vsCode中文出现黄色框子-如图二、解决办法 一、vsCode中文出现黄色框子-如图 二、解决办法 点击 “文件”点击 “首选项”点击 “设置” 搜索框直接搜索unicode选择“文本编辑器”,往下滑动,找到“Un…...

threejs开源代码之-旋转的彩色立方体
效果:旋转的彩色立方体 效果描述: 一个立方体在场景中旋转。立方体的每个面有不同的颜色。使用自定义着色器为立方体添加动态的光影效果。 代码实现 import * as THREE from three; import { OrbitControls } from three/examples/jsm/controls/OrbitC…...

visual studio 2008的试用版评估期已结束的解决办法
visual studio 2008试用期过了后,再次启动时提示:visual studio的试用版评估期已结束。 需要的工具:补丁文件PatchVS2008.exe 解决办法: 1.在“控制面板”-“添加删除程序”中选择visual studio 2008,点击“更改/卸载”…...

解锁 DeepSeek 模型高效部署密码:蓝耘平台深度剖析与实战应用
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...

Http和Socks的区别?
HTTP 和 SOCKS 的区别 HTTP 和 SOCKS 都是用于网络通信的协议,但它们在工作原理、应用场景和实现方式上有显著的区别。以下是详细的对比和说明。 一、HTTP 协议 1. 定义 HTTP(HyperText Transfer Protocol)是用于传输超文本数据的应用层协…...

VC播放mp3的方法
1、使用msi库 #include <mmsystem.h> #pragma comment(lib,"winmm.lib") .......//打开文件MCI_OPEN_PARMS mciOpen; mciOpen.lpstrDeviceType _T("mpegvideo"); mciOpen.lpstrElementName _T("c://1.mp3"); MCIERROR mciError mci…...