学习笔记18:Codeforces Round 923 (Div. 3)

D

预处理,ans[i]记录一a[i]后面第一个与a[i]相等的值(如果没有,则需要特殊判断或者初始化成一个极大值)

每次询问时,可以直接看ans[l]是否大于r,如果大于则不存在,如果小于则存在

#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<vector>
#include<set>
#include<map>using namespace std;
typedef long long LL;
#define int long long
typedef pair<int,int> PII;
const int N=1000010;
int a[N];
int n,m;void solve(){int k;cin>>n;queue<int>q;std::vector<int>ans(n+1);for(int i=1;i<=n;i++){cin>>a[i];while(q.size() && a[q.front()]!=a[i]){int t=q.front();q.pop();ans[t]=i;}q.push(i);} cin>>k;while(k--){int l,r;cin>>l>>r;if(ans[l]>r || ans[l]==0){cout<<-1<<" "<<-1<<endl;}else{cout<<l<<" "<<ans[l]<<endl;}}cout<<endl;}
signed main(){int t=1;cin>>t;while(t--){solve();}
}

E
构造

一眼看上去没有头绪,实际上手玩一下样例即可

#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<vector>
#include<set>
#include<map>using namespace std;
typedef long long LL;
#define int long long
typedef pair<int,int> PII;
const int N=1000010;
int a[N],ans[N];
int n,m;void solve(){int k;cin>>n>>k;int res1=n,res2=1;for(int i=1;i<=k;i++){if(i&1){int now=res1;for(int j=0;i+j*k<=n;j++){ans[i+j*k]=now--;}res1=now;}else{int now=res2;for(int j=0;i+j*k<=n;j++){ans[i+j*k]=now++;}res2=now;}}for(int i=1;i<=n;i++) cout<<ans[i]<<" ";cout<<endl;}
signed main(){int t=1;cin>>t;while(t--){solve();}
}

F

类似于最小生成树的求法

将边的从大向小排序

用并查集判断是否成环

如果成环记录一下此时的起点start和终点end以及边长w

然后bfs一下,求出起点到各个点的最短距离,根据终点反推出整个路径

#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<vector>
#include<set>
#include<map>
#include<array>
using namespace std;
typedef long long LL;
#define int long long
typedef pair<int,int> PII;
const int N=1000010;
array<int,3> a[N];
std::vector<int> v[N];
int dist[N];
int f[N];
int find(int x){if(f[x]!=x) return f[x]=find(f[x]);return f[x];
}
void solve(){int n,m;cin>>n>>m;for(int i=1;i<=n;i++) f[i]=i,v[i].clear(),dist[i]=1e18;for(int i=1;i<=m;i++){cin>>a[i][0]>>a[i][1]>>a[i][2];v[a[i][1]].push_back(a[i][0]);v[a[i][0]].push_back(a[i][1]);}sort(a+1,a+1+m,[&](array<int,3> x,array<int,3> y){return x[2]>y[2];});int ans=1e18;int start=-1,end=-1;for(int i=1;i<=m;i++){int xx=find(a[i][0]);int yy=find(a[i][1]);if(xx==yy && a[i][2]<ans){ans=a[i][2];start=a[i][0];end=a[i][1];}f[xx]=yy;}queue<int>q;q.push(start);dist[start]=0;while(q.size()){int t=q.front();q.pop();for(auto c:v[t]){if(t==start && c==end) continue;if(c==start) continue;if(dist[c]>dist[t]+1){dist[c]=dist[t]+1;q.push(c); }}}int dis=dist[end];int now=end;vector<int>arr;while(dis){arr.push_back(now);for(auto c:v[now]){if(dist[c]==dis-1){now=c;dis--;break;}}}arr.push_back(start);cout<<ans<<" "<<arr.size()<<endl;for(auto c:arr){cout<<c<<" ";}cout<<endl;}
signed main(){int t=1;cin>>t;while(t--){solve();}
}

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

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

相关文章

用HTML5实现动画

用HTML5实现动画 要在HTML5中实现动画&#xff0c;可以使用以下几种方法&#xff1a;CSS动画、使用<canvas>元素和JavaScript来实现动画、使用JavaScript动画库。重点介绍前两种。 一、CSS动画 CSS3 动画&#xff1a;使用CSS3的动画属性和关键帧&#xff08;keyframes&…

Fluke ADPT 连接器新增对福禄克万用 Fluke 17B Max 的支持

所需设备&#xff1a; 1、Fluke ADPT连接器&#xff1b; 2、Fluke 17B Max&#xff1b; Fluke 17B Max拆机图&#xff1a; 显示界面如下图&#xff1a; 并且可以将波形导出到EXCEL: 福禄克万用表需要自己动手改造&#xff01;&#xff01;&#xff01;

Spring Boot 笔记 020 redis集成

1.1 安装redis Windows 下 Redis 安装与配置 教程_redis windows-CSDN博客 2.1 引入redis坐标 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 2.2 配置…

无人机导航技术,无人机导航理论基础,无人机导航技术应用发展详解

惯性/卫星定位组合是一种比较理想的组合导航系统。在无人机导航领域&#xff0c;多年来惯性/卫星定位组合导航系统的研究一直受到普遍的关注&#xff0c;大量的理论研究成果得到实际应用。 常见的几类导航系统 单一导航 卫星导航系统 、多普勒导航、惯性导航系统(INS) 、图形…

【Java多线程】对进程与线程的理解

目录 1、进程/任务&#xff08;Process/Task&#xff09; 2、进程控制块抽象(PCB Process Control Block) 2.1、PCB重要属性 2.2、PCB中支持进程调度的一些属性 3、 内存分配 —— 内存管理&#xff08;Memory Manage&#xff09; 4、线程&#xff08;Thread&#xff09;…

蓝桥杯每日一题(python)

##斐波那契数列的应用 --- 题目斐波那契 题目&#xff1a; 如果数组 A (a0, a1, , an−1) 满足以下条件&#xff0c;就说它是一个斐波那契数组&#xff1a; 1. n ≥ 2&#xff1b; 2. a0 a1&#xff1b; 3. 对于所有的 i(i ≥ 2)&#xff0c;都满足 ai ai−1 ai−2…

阿里云幻兽帕鲁服务器更新了1.4之后,进游戏要重新创建角色,怎么解决?

阿里云幻兽帕鲁服务器更新了1.4之后&#xff0c;进游戏要重新创建角色&#xff0c;怎么解决&#xff1f; 其实这个问题的主要原因可能还是因为前后的APPID不一致导致。 因为Palworld服务端有两种&#xff0c;一种是有APPID&#xff0c;还有一种是没有APPID。 参考这篇教程&am…

曝某头部电商企业急招鸿蒙开发高手 年薪超过百万

近日某头部电商企业急需鸿蒙开发高手&#xff0c;提供高达100万的年薪&#xff0c;工作地点位于北京。 随着鸿蒙生态不断发展壮大&#xff0c;越来越多的企业开始加入其中&#xff0c;对鸿蒙OS开发工程师的需求也越来越迫切。据新浪科技报道&#xff0c;多家互联网公司相继发布…

gem5学习(20):替换策略——Replacement Policies

目录 一、Random 二、Least Recently Used (LRU) 三、Tree Pseudo Least Recently Used (TreePLRU) 四、Bimodal Insertion Policy (BIP) 五、LRU Insertion Policy (LIP) 六、Most Recently Used (MRU) 七、Least Frequently Used (LFU) 八、First-In, First-Out (FIF…

cefsharp121(cef121.3.7Chromium121.0.6167.160)升级测试及其他H264版本

一、版本说明 1.1 本此版本 此版本CEF 121.3.7+g82c7c57+chromium-121.0.6167.160 / Chromium 121.0.6167.160 1.2 其他支持H264版本 支持H264推荐版本:V100,V109,V111,V119版本,其他V114,V115,V108,V107 支持win7/win8/win8.1最后版本v109.x 支持NET4.5.2最后版本v114.x …

如何合理评估信号过孔的残桩效应--Via Stub

设计中&#xff0c;之所以会去考察信号过孔的残桩效应&#xff08;Via Stub&#xff09;&#xff0c;是因为它的存在导致了不需要的频率谐振&#xff0c;当这些谐振出现在所关注的信号通道的插入损耗中时&#xff0c;就会引发较为严重的信号完整性&#xff08;SI&#xff09;问…

python---Pixiv排行榜图片获取(2024.2.16)

1.提示&#xff1a; 使用需要安装各种import的包&#xff0c;都是很基础的包&#xff0c;直接安装即可。 自备梯子 。 2.严肃警告 本程序仅可用作个人爱好&#xff0c;商业用途严禁&#xff01;请自觉遵守君子协定robots.txt不要给网址过大的压力&#xff0c;每天以及同一时段…

Springboot --- 使用国内的 AI 大模型 对话

实在是不知道标题写什么了 可以在评论区给个建议哈哈哈哈 先用这个作为标题吧 尝试使用 国内给出的 AI 大模型做出一个 可以和 AI 对话的 网站出来 使用 智普AI 只能 在控制台中输出 对应的信息 不如就做一个 maven 的 项目调用对应的API https://open.bigmodel.cn/dev/api#g…

Python 字符串格式化输出

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站零基础入门的AI学习网站~。 前言 字符串格式化是编程中一个常见的需求&#xff0c;它可以们将不同类型的数据&#xff08;如数字、文本、日…

JVM-JVM中对象的生命周期

申明&#xff1a;文章内容是本人学习极客时间课程所写&#xff0c;文字和图片基本来源于课程资料&#xff0c;在某些地方会插入一点自己的理解&#xff0c;未用于商业用途&#xff0c;侵删。 原资料地址&#xff1a;课程资料 对象的创建 常量池检查:检查new指令是否能在常量池…

openEuler 22.03 LTS 上源码安装 PostgreSQL 15

安装PostgreSQL 15 1 安装必要的依赖 #yum install -y readline-devel zlib-devel gcc2、下载源码 # wget https://ftp.postgresql.org/pub/source/v15.6/postgresql-15.6.tar.gz # tar -xzvf postgresql-15.6.tar.gz3 配置 # cd postgresql-15.6/ # ./configure4 编译安装…

Matlab|基于支持向量机的电力短期负荷预测【三种方法】

目录 主要内容 部分代码 结果一览 下载链接 主要内容 该程序主要是对电力短期负荷进行预测&#xff0c;采用三种方法&#xff0c;分别是最小二乘支持向量机&#xff08;LSSVM&#xff09;、标准粒子群算法支持向量机和改进粒子群算法支持向量机三种方法对负荷进行…

Nginx反向代理多虚拟主机节点服务器

IP规划: servera,serverd作为web服务器 serverb作为nginx负载均衡服务器 serverc域名映射服务器 servera(192.168.233.132)配置: # 安装Nginx yum install nginx -y# 进入Nginx配置文件目录 cd /etc/nginx/conf.d/# 编辑配置文件&#xf…

讲解用Python处理Excel表格

我们今天来一起探索一下用Python怎么操作Excel文件。与word文件的操作库python-docx类似&#xff0c;Python也有专门的库为Excel文件的操作提供支持&#xff0c;这些库包括xlrd、xlwt、xlutils、openpyxl、xlsxwriter几种&#xff0c;其中我最喜欢用的是openpyxl&#xff0c;这…

【天幕系列 02】开源力量:揭示开源软件如何成为技术演进与社会发展的引擎

文章目录 导言01 开源软件如何推动技术创新1.1 开放的创新模式1.2 快速迭代和反馈循环1.3 共享知识和资源1.4 生态系统的建设和扩展1.5 开放标准和互操作性 02 开源软件的商业模式2.1 支持和服务模式2.2 基于订阅的模式2.3 专有附加组件模式2.4 开源软件作为平台模式2.5 双重许…