算法日常练习

在这里插入图片描述

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

#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.mzph.cn/news/870857.shtml

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

相关文章

关于机械键盘的购买,该怎么选择?

一.关于轴体的选择。 1.青轴&#xff1a;青轴是机械键盘最有段落感的轴&#xff0c;声音比较大&#xff0c;以吵死人别人著称。有人将其比喻为Cherry的春天&#xff0c;爽快清脆的段落感如春天般舒畅。适合在宿舍、咖啡厅&#xff0c;图书馆使用。&#xff08;我装的 &#xf…

linux源码安装mysql8.0的小白教程

1.下载8.x版本的mysql MySQL :: Download MySQL Community Server (Archived Versions) 2.安装linux 我安装的是Rocky Linux8.6 3.设置ip地址,方便远程连接 使用nmcli或者nmtui设置或修改ip地址 4.使用远程连接工具MobaXterm操作: (1)将mysql8版本的压缩包上传到mybaxterm…

一图看懂 | 蓝卓油气行业解决方案

我国是全球最大的能源消费国&#xff0c;保障国家能源安全是我国能源发展的首要任务&#xff0c;油气作为我国能源体系的重要组成部分&#xff0c;是支撑我国工业和经济社会发展的基础和“压舱石&#xff0c;也是必须筑牢的能源安全底线。 蓝卓根据油气田行业发展趋势&#xf…

前端实现一键复制功能

1、下载插件 npm i vue-clipboard32.0.0 2、在需要复制的文件中引入插件并使用&#xff1a; JS: import useClipboard from "vue-clipboard3"; const { toClipboard } useClipboard(); HTML: <el-tooltip content"复制内容" placement"top&…

自然语言处理基本概念

自然语言处理基本概念 所有学习循环神经网络的人都是看这一篇博客长大的&#xff1a; https://colah.github.io/posts/2015-08-Understanding-LSTMs/ import jieba import torch from torch import nns1 "我吃饭了&#xff01;" s2 "今天天气很好&#xff01…

电脑录屏软件哪个效果最好 怎么一边录屏一边直播 电脑录屏软件好用免费推荐

随着科技的发展&#xff0c;电脑的更新迭代也越来越快&#xff0c;各项功能的进步与完善使得人们的工作和生活越来越离不开电脑&#xff0c;其中录屏功能就很好的体现了网络的便利&#xff0c;人们可以将在电脑画面的变化通过录屏功能记录下来&#xff0c;以便后续学习和回顾。…

python-小理与他的画(赛氪OJ)

[题目描述] 小理是个画家&#xff0c;他希望有一天他的画能让心仪的她看到。 只是后来她有了他&#xff0c;他却只有他的画&#xff0c;他望着他的画&#xff0c;默默的发呆。 可惜做题的你&#xff0c;画不出他画的她&#xff0c;所以&#xff0c;我们只好画点简单的画&#x…

centos9+mysql8.0下mycat1.6部署

#创作灵感# 整理一下mysql代理技术&#xff0c;这个当时是和mysql集群部署一个项目的&#xff0c;一并整理出来供参考。 1、环境准备 此处使用的为M-M-SS双主双从结构集群&#xff0c;集群部署方法放在我的上一篇文章中 防火墙可以使用firewall-cmd放行&#xff0c;演示环境…

民航飞机维修工卡、放行单推广使用电子签章,每天可省约3万张纸

据某民航公司对外公布数据显示&#xff0c;通过在飞机航线维修工作中应用电子签章&#xff0c;以日均1000个航班计算&#xff0c;每天可节省约3万张纸、每年可节约1200多万元的费用成本。 小小一枚印章的转变&#xff0c;电子签章是如何做到的&#xff1f; 据了解&#xff0c;…

PowerCreatorCMS UploadResourcePic 任意文件上传漏洞复现

0x01 产品简介 PowerCreator CMS是翰博尔信息技术有限公司(简称翰博尔PowerCreator)推出的一款教育资源管理平台,专注于教育领域的信息化解决方案。PowerCreator CMS是集成了软件平台和硬件设备、多系统高度融合的教育资源管理平台。它旨在通过技术手段提升教育资源的管理、…

jenkins打包java项目报错Error: Unable to access jarfile tlm-admin.jar

jenkins打包boot项目 自动重启脚本失败 查看了一下项目日志报错&#xff1a; Error: Unable to access jarfile tlm-admin.jar我检查了一下这个配置&#xff0c;感觉没有问题&#xff0c;包可以正常打&#xff0c; cd 到项目目录下面&#xff0c;手动执行这个sh脚本也是能正常…

基于java+springboot+vue实现的作业管理系统(文末源码+Lw)110

基于SpringBootVue的实现的作业管理系统&#xff08;源码数据库万字Lun文流程图ER图结构图演示视频软件包&#xff09; 功能描述&#xff1a; 作业管理系统有管理员&#xff0c;教师&#xff0c;学生三个角色。教师和学生都可以进行注册然后再登录。学生可以修改自己的密码&…

总结之企业微信(一)——创建外部群二维码,用户扫码入群

创建外部群 企微接口中没有直接通过服务端API接口创建外部群 可以通过jssdk创建外部群&#xff1a;引用jssdk调用会话接口wx.openEnterpriseChat https://work.weixin.qq.com/api/doc/90000/90136/90511 创建外部群二维码 需要通过企业微信的应用&#xff0c;并且配置客户联…

直播麦克风哪个品牌音质最好,领夹麦克风品牌排行榜前十名推荐

​在这个快节奏的时代&#xff0c;无论是专业播客、商务会议、在线教学还是日常通话&#xff0c;清晰的声音传递已成为沟通的关键。传统的有线麦克风虽好&#xff0c;但在移动性和灵活性上稍显不足。而无线领夹麦克风&#xff0c;以其小巧便携、高保真音质和卓越的抗干扰能力&a…

有一个Time类,包含数据成员minute(分)和sec(秒),模拟秒表,每次走1秒,满60秒进1分钟,此时秒又从0起算,要求输出分和秒的值

单目运算符只有一个操作数&#xff0c;如!a,-b,&c,*p&#xff0c;还有最常用的i和--i等。重载单目运算符的方法与重载双目运算符的方法是类似的。但由于单目运算符只有一个操作数&#xff0c;因此运算符重载函数只有一个参数&#xff0c;如果运算符重载函数作为成员函数&am…

袋鼠云产品支持全栈信创适配,更加安全可靠、自主可控

随着国产替换的深化&#xff0c;企业对信创产品的需求逐渐融合更丰富的业务诉求以及未来数智规划&#xff0c;正从“同类替换”转向“迭代升级”。 当前&#xff0c;袋鼠云的产品与芯片、服务器、数据库、操作系统、中间件、云平台等主流信创厂商全面兼容适配&#xff0c;为企…

体育资讯小程序的设计

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

pico+unity3d开启彩色透视

1、点击游戏对象、点击XR、点击添加XR Origin&#xff0c;并把自带的摄像对象删除 2、添加脚本 using System.Collections; using System.Collections.Generic; using UnityEngine; using Unity.XR.PXR;//引入xr对象 public class toushi : MonoBehaviour {// Start is called…

监控房价和挂牌数量的工具-以成都房价为例

介绍 本文将介绍如何通过zervice提供的工具来监控成都房价&#xff08;其他城市或者地区类似&#xff09;&#xff0c;包括价格和挂牌数量。可以对购房一族提供数据参考。 数据来源 数据来源方面&#xff0c;本文以成都为例&#xff0c;我们会使用链家数据-> 选择地图找房…

【解密】记一次辽宁省某综合实践教学管理平台加解密算法分析

最近接到需求&#xff0c;于是准备弄一下&#xff0c;发现对方整个流程是&#xff1a;先加密在请求&#xff0c;请求得到的数据再进行拼接加密&#xff0c;不过花了2个小时还是完成了解密 哈哈 找到请求发现请求数据加密 在启动器里面发现登录方法 打印出各个关键变量数据 …