算法日常练习

在这里插入图片描述

对于这个题,如何处理同一个方向的问题,且对于同一组的如果间隔太大如何实现离散化

#include<bits/stdc++.h>
using namespace std;#define int long long
typedef long long ll;
map<pair<int,int>,vector<pair<ll,ll>>> mp;  // 注意里面是用vector装着 
signed main(){int n;cin >> n;int ans = 0;int num = 0;for(int i=1;i<=n;i++){int a,b,c;cin >> a >> b >> c;int d= abs(__gcd(a,b));  // 请注意这个 gcd 是两个下划线// 且要取绝对值 mp[{a/d,b/d}].push_back({a*a+b*b,c});ans += c;}for(auto u:mp){vector<pair<ll,ll>> t = u.second;sort(t.begin(),t.end());int len = t.size();for(int i=0;i<len;i++){if(t[i].second!=1) num++;else if((i+1)==len || t[i+1].second!=1) num++;}}cout << ans << " " << num;return 0;
}

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;const int N = (int)1e3 + 5;
int e[N * N], ne[N * N], h[N], idx = 0;
int energy[N * N], va[N * N];
int vis[N];
int di[N];void add(int a, int b, int ener, int value) {e[++idx] = b;ne[idx] = h[a]; h[a] = idx;energy[idx] = ener, va[idx] = value;
}
int n, m;
int maxdistance = 0xfffffff;
int start;  // 设置为全局变量int dikj() {priority_queue<pair<int, int>> q;int ma = 0;//vis[start] = 1; // 记录一下for (int i = 0; i <= n; i++) vis[i] = 0,di[i] = 0xffffff;//vis[start] = 1;q.push({ 0,start });while (q.size()) {int dis = -q.top().first, node = q.top().second;q.pop();if (vis[node]) continue;vis[node] = 1;for (int i = h[node]; i != -1; i = ne[i]) {int to = e[i];//if (vis[to]) continue;//vis[to] = 1;int newdis = energy[i] + dis; // 这是新的距离if (newdis < di[to]) {di[to] = newdis;q.push({ -newdis, to });}/* ma = max(ma, newdis);*/}}for (int i = 1; i <= n; i++) {if (di[i] == 0xffffff) continue;ma = max(ma, di[i]);}return ma;
}
int pre[N];// 记录前缀
int ju[N];
void solve(int start) {for (int i = 1; i <= n; i++) {pre[i] = i, vis[i] = 0, di[i] = 0xffffff;}priority_queue<pair<int, int>> q;q.push({ 0,start });//vis[start] = 1;while (q.size()) {int dis = -q.top().first, node = q.top().second;q.pop();//if (vis[node]) continue;vis[node] = 1;for (int i = h[node]; i != -1; i = ne[i]) {int to = e[i];//if (vis[to]) continue;//vis[to] = 1;int t = dis + energy[i];if (t < di[to]) {di[to] = t; pre[to] = node;ju[to] = ju[node] + va[i];q.push({ -t,to });//cout << "1 to: " << to << " node " << node << endl;}else if (t == di[to]) {int u = ju[node] + va[i];if (u > ju[to]) {di[to] = t; pre[to] = node;ju[to] = ju[node] + va[i];//q.push({ -t,to });//cout << "2 to: " << to << " node " << node << endl;}}}}
}void print(int s, int t) {if (s == t) {printf("%d", s);return;}print(s, pre[t]);printf("->%d", t);}
int main() {cin >> n >> m;memset(h, -1, sizeof h);for (int i = 1; i <= m; i++) {int a, b, c, d;cin >> a >> b >> c >> d;add(a, b, c, d);add(b, a, c, d);}int kaishi;for (int i = 1; i <= n; i++) {start = i;int d = dikj();//cout << d << endl;if (d < maxdistance) {kaishi = start;maxdistance = d;}}cout << kaishi << endl;solve(kaishi);//int o = kaishi;int t;cin >> t;//for (int i = 1; i <= n; i++) {//    cout << pre[i] << endl;//}di[kaishi] = ju[kaishi] =0 ;for (int i = 1; i <= t; i++) {int a;cin >> a;print(kaishi,a);cout << endl;cout << di[a] << " " << ju[a] << endl;}
}

在这里插入图片描述

对于这个题我们需要从最后一天开始计算,因为我们的并查集是不能删除边的

#include<bits/stdc++.h>
using namespace std;const int N = (int)5e4 + 5;
vector<int> ed[N];
int fa[N];
int n, m, d;
int jud[N];
int ans[N];
int find(int x) {if (x == fa[x]) return x;return fa[x] = find(fa[x]);
}void uni(int x, int y) {x = find(x), y = find(y);if (x == y) return;fa[x] = y;
}void ini() {for (int i = 1; i <= n; i++) fa[i] = i;
}
map<int,vector<pair<int, int>>> bian;
vector<int> shan;
int main() {cin >> n >> m >> d;for (int i = 1; i <= m; i++) {int a, b;cin >> a >> b;ed[a].push_back(b);ed[b].push_back(a);}ini();int c, q;for (int i = 1; i <= d; i++) {cin >> c >> q;shan.push_back(c);jud[c] = 1;int x, y;for (int j = 1; j <= q; j++) {cin >> x >> y;bian[i].push_back({ x,y });//cout << "789" << endl;bian[1].push_back({ 0,0 });}}//cout << "len " << bian[0].size() << endl;for (int i = 1; i <= n; i++) {if (jud[i]) continue;for (auto u : ed[i]) {if (jud[u]) continue;uni(u, i);  // 合并}}//cout << "shan " << shan[0] << endl;for (int i = d; i >= 1; i--) {int now = shan[i-1];//cout << "123" << endl;vector<pair<int, int>> r = bian[i];for (auto u : r) {//cout << "u.first " << u.first << " u.second " << u.second << endl;if (find(u.first) != find(u.second)) ans[i]++;//cout << ans[i] << endl;}jud[now] = 0;for (int u : ed[now]) {if (jud[u]) continue;uni(u, now);}}for (int i = 1; i <= d; i++) cout << ans[i] << endl;return 0;
}

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

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

相关文章

小程序做自定义分享封面图,Canvas base64图片数据真机上不显示?【已解决】

首选说一下需求&#xff0c;做一个小程序分享&#xff0c;但是封面图要自定义&#xff0c;除了要有对应商品还有有背景图&#xff0c;商品名。类似这种 实现逻辑&#xff0c;把商品图和背景图&#xff0c;再加上价格和商品名用canvas 渲染出来 这是弄好之后的效果图&#xff0…

【简历】兰州某大学一本硕士:面试通过率基本是为0

注&#xff1a;为保证用户信息安全&#xff0c;姓名和学校等信息已经进行同层次变更&#xff0c;内容部分细节也进行了部分隐藏 简历说明 这是一个一本硕士的Java简历&#xff0c;那这个简历因为学校本身&#xff0c;它是一个一本的硕士&#xff0c;我们一般认为这一本硕士&a…

Riscv 架构的合规测试

为啥直接关注riscv-arch-test&#xff0c;是因为RISCOF 测试框架使用的是riscv-arch-test 1. The architectural test 架构测试是一个单一的测试&#xff0c;代表了可编译和运行的最小测试代码。它是用汇编代码编写的&#xff0c;其产品是test signature。一个架构测试可能由…

体育资讯小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;球员管理&#xff0c;教练管理&#xff0c;赛事日程管理&#xff0c;赛事类型管理&#xff0c;联赛积分榜管理 开发系统&#xff1a;Windows 架构模式&#xff1a;SSM JDK版本&am…

【前端项目笔记】10 项目优化上线

项目优化上线 目标&#xff1a;优化Vue项目部署Vue项目&#xff08;上线提供使用&#xff09; 项目优化 项目优化策略&#xff1a; 生成打包报告&#xff1a;根据生成的报告发现问题并解决第三方库启用CDN&#xff1a;提高首屏页面的加载效率Element-UI组件按需加载路由懒加…

java算法day12

java算法day12 199二叉树的右视图637二叉树的层平均值515 在每个树行中找最大值429 N叉树的层序遍历116 填充每个节点的下一个右侧节点指针 199 二叉树的右视图 这题还是层序遍历的板子&#xff0c;但是在处理上略有差异 这个题我一开始的想法就有误&#xff0c;因为我一开始…

通过手机供网、可修改WIFI_MAC的网络设备

一、修改WIFI mac&#xff08;bssid&#xff09; 取一根网线&#xff0c;一头连着设备黄色网口、一头连着电脑按住设备reset按键&#xff0c;插入电源线&#xff0c;观察到蓝灯闪烁后再松开reset按键 打开电脑浏览器&#xff0c;进入192.168.1.1&#xff0c;选择“MAC 地址修改…

彻底开源,免费商用,上海AI实验室把大模型门槛打下来

终于&#xff0c;业内迎来了首个全链条大模型开源体系。 大模型领域&#xff0c;有人探索前沿技术&#xff0c;有人在加速落地&#xff0c;也有人正在推动整个社区进步。 就在近日&#xff0c;AI 社区迎来首个统一的全链条贯穿的大模型开源体系。 虽然社区有LLaMA等影响力较大…

uniapp实现光标闪烁(配合自己的键盘)

前言 因为公司业务需要&#xff0c;所以我们... 演示 其实就是Chat自动打字效果 代码 键盘请看这篇文件 <template> <view class"list"><view class"title"><text>手机号码</text></view><view class"ty…

C#使用异步方式调用同步方法的实现方法

使用异步方式调用同步方法&#xff0c;在此我们使用异步编程模型&#xff08;APM&#xff09;实现 1、定义异步委托和测试方法 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Task…

centos安装数据库同步工具sqoop并导入数据,导出数据,添加定时任务

目录 1.安装jdk 1.1上传jdk安装包到/opt目录下并解压 1.2解压 1.3配置环境变量 2.安装hadoop 2.1.下载hadoop 2.2.解压hadoop 2.3配置环境变量 3.安装sqoop 3.1下载 3.2解压 3.3下载依赖包并复制到指定位置 3.3.1下载commons-lang-2.6-bin.tar.gz 3.3.2将mysql-c…

STM32 - 内存分区与OTA

最近搞MCU&#xff0c;发现它与SOC之间存在诸多差异&#xff0c;不能沿用SOC上一些技术理论。本文以STM L4为例&#xff0c;总结了一些STM32 小白入门指南。 标题MCU没有DDR&#xff1f; 是的。MCU并没有DDR&#xff0c;而是让代码存储在nor flash上&#xff0c;临时变量和栈…

Windows环境安装Redis和Redis Desktop Manager图文详解教程

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl Redis概述 Redis是一个开源的高性能键值对数据库&#xff0c;以其卓越的读写速度而著称&#xff0c;广泛用于数据库、缓存和消息代理。它主要将数据存储在内存中&#xff0…

Codeforces Round #956 (Div. 2) and ByteRace 2024(A~D题解)

这次比赛也是比较吃亏的&#xff0c;做题顺序出错了&#xff0c;先做的第三个&#xff0c;错在第三个数据点之后&#xff0c;才做的第二个&#xff08;因为当时有个地方没检查出来&#xff09;所以这次比赛还是一如既往地打拉了 那么就来发一下题解吧 A. Array Divisibility …

使用pip或conda离线下载安装包,使用pip或conda安装离线安装包

使用pip或conda离线下载安装包&#xff0c;使用pip或conda安装离线安装包 一、使用pip离线下载安装包1. 在有网络的机器上下载包和依赖2. 传输离线安装包 二、在目标机器上离线安装pip包三、使用conda离线下载安装包1. 在有网络的机器上下载conda包2. 传输conda包或环境包3. 在…

Oracle Record Variables 记录变量

Oracle Record Variables&#xff08;Oracle记录变量&#xff09;是Oracle数据库编程中PL/SQL语言的一个关键特性&#xff0c;它允许开发者将多个相关的、分离的、基本数据类型的变量组合成一个复合数据类型&#xff0c;类似于C语言中的结构体&#xff08;STRUCTURE&#xff09…

Nvidia Isaac Sim跟着教程学习1-加载sim资产包

我是跟着这篇博客学习的&#xff0c;大家可以去他这里面看&#xff0c;下面就是把我认为一些坑的地方提出来&#xff0c;大家借鉴。 学习博客 1.下载sim资产包 注意下载完四个包后&#xff0c;一定要放在Downloads文件夹下&#xff0c;不是默认的中文 下载 文件夹 然后随便在…

旷视AI开源新突破:上传照片即可生成表情包视频!

日前&#xff0c;旷视科技发布了一项新的开源AI人像视频生成框架——MegActor。该框架让用户只需输入一张静态肖像图片和一段视频&#xff08;如演讲、表情包、rap&#xff09;&#xff0c;便可生成一段表情丰富、动作一致的AI人像视频。生成的视频长度取决于输入的视频长度。与…

【深度学习】基于深度学习的模式识别基础

一 模式识别基础 “模式”指的是数据中具有某些相似特征或属性的事物或事件的集合。具体来说&#xff0c;模式可以是以下几种形式&#xff1a; 视觉模式 在图像或视频中&#xff0c;模式可以是某种形状、颜色组合或纹理。例如&#xff0c;人脸、文字字符、手写数字等都可以视…

基于LSTM的局部特征提取网络算法原理

目录 一、LSTM的基本原理与结构 1. LSTM的核心结构 2. LSTM的工作原理 二、基于LSTM的局部特征提取 1. 输入处理与序列表示 2. LSTM层处理与特征提取 3. 特征提取的优势与应用 三、实现细节与注意事项 1. 数据预处理 2. 网络结构与参数选择 3. 训练策略与正则化 4.…