Codeforces Round 1065 (Div. 3) 题解

news/2025/11/21 2:02:21/文章来源:https://www.cnblogs.com/Nexus-Raphael/p/19250014

Codeforces Round 1065 (Div. 3)题解

A. Shizuku Hoshikawa and Farm Legs

签到题,第一眼看到的时候以为要解鸡兔同笼,但是直接观察就能得出答案了

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ll long long
#define vi vector<int> 
#define pb push_back 
#define pii pair<int,int>
#define fi first
#define se second
#define endl '\n'
const int INF=1e18,N=2e5,MOD=1e9+7;void solve(){int n;cin>>n;if(n&1) cout<<0<<endl;else{n/=2;n/=2;cout<<n+1<<endl;}
}signed main(){ios::sync_with_stdio(false);cin.tie(0);int T=1;cin>>T;while(T--)solve();return 0;
}

[B - Yuu Koito and Minimum Absolute Sum]

所谓的差值求和max化简下来就是求max(|an-a1|),所以我们直接特判即可,尽量使得字典序最小

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ll long long
#define vi vector<int> 
#define pb push_back 
#define pii pair<int,int>
#define fi first
#define se second
#define endl '\n'
const int INF=1e18,N=2e5,MOD=1e9+7;void solve(){int n;cin>>n;vi a(n);for(int i=0;i<n;i++){cin>>a[i];}if(a[0]==-1&&a[n-1]==-1) a[0]=a[n-1]=0;if(a[0]==-1) a[0]=a[n-1];else if(a[n-1]==-1) a[n-1]=a[0];if(a[0]>a[n-1]) cout<<a[0]-a[n-1]<<endl;else cout<<a[n-1]-a[0]<<endl;for(int i=0;i<n;i++){if(a[i]==-1) a[i]=0;cout<<a[i]<<' ';}cout<<endl;
}signed main(){ios::sync_with_stdio(false);cin.tie(0);int T=1;cin>>T;while(T--)solve();return 0;
}

C2 - Renako Amaori and XOR Game (hard version)

这个题目直接看的Hard Version,因为位运算多半是找规律的题目,赌一下

如果最终A和M的得分相同,那么这两个得分异或起来就是0,等价于a、b所有元素异或和为0,那么这样就好特判了。

不然的话,我们找到他们异或起来第一位为1的值(第一位不一样的),就是所有元素异或和第一位不一样的,找到之后做标记,看这个位是在哪里出现(且ai、bi的这个位不能同时为1,否则没有意义),如果位置是在奇数上就A赢,否则M赢

D/F - Rae Taylor and Trees

这个题目不能用DFS写,因为边太多了,存N阶完全图会MLE,所以我们优化一下DFS的来由,就是出现了多个连通分量,既然u和v要满足小的一定排在前面,所以就不能出现这种情况,小的元素在后面于是连不了前面的连通分量,而前面的连通分量都是有前面的最小元素主导的,后面的小元素连不过来的原因是这个元素比前面的最小元素还要小,为了保证两者所在连通分量不同,只需要保证他们没有连相同的大元素即可, 问题转换为前面的最小元素连不了后面的大元素,连不了是因为min前>max后,所以存一个后缀max数组再遍历一遍即可

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ll long long
#define vi vector<int> 
#define pb push_back 
#define pii pair<int,int>
#define fi first
#define se second
#define endl '\n'
const int INF=1e18,N=2e5,MOD=1e9+7;void solve(){int n;cin>>n;vi p(n+5);for(int i=1;i<=n;i++){cin>>p[i];}vi suf(n+5);int pmn=INF;for(int i=n;i>=1;i--){suf[i]=max(p[i],suf[i+1]);}for(int i=1;i<n;i++){pmn=min(p[i],pmn);if(pmn>suf[i+1]) {cout<<"No\n";return;}}cout<<"Yes\n";
}signed main(){ios::sync_with_stdio(false);cin.tie(0);int T=1;cin>>T;while(T--)solve();return 0;
}

这样子也隐含表示了建树的过程,如果可以建树的话,前面的连通分量由最小数主导,后面的连通分量可以连过来是因为两个连通分量共同连接了最大的元素,所以我们把依次出现的前缀最小值维护起来即可接着分为最小值不变型连接和最小值更新时连接两种情况处理即可

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ll long long
#define vi vector<int> 
#define pb push_back 
#define pii pair<int,int>
#define fi first
#define se second
#define endl '\n'
const int INF=1e18,N=2e5,MOD=1e9+7;void solve(){int n;cin>>n;vi p(n+5);for(int i=1;i<=n;i++){cin>>p[i];}vector<pair<int,int>> suf(n+5);suf[n]={p[n],n};int pmn=INF;for(int i=n-1;i>=1;i--){if(p[i]>suf[i+1].fi){suf[i]={p[i],i};}else suf[i]=suf[i+1];}vi mn;for(int i=1;i<=n;i++){if(p[i]<pmn){pmn=p[i];mn.pb(i);}}for(int i=0;i<mn.size()-1;i++){int cur=mn[i],nxt=mn[i+1];if(p[cur]>suf[nxt].fi) {cout<<"No\n";return ;}}cout<<"YES\n";int cur=mn[0],nxt=1;for(int i=2;i<=n;i++){if(nxt<mn.size()&&i==mn[nxt]){cur=mn[nxt];nxt++;}else cout<<p[cur]<<' '<<p[i]<<endl;}for(int i=0;i<mn.size()-1;i++){int u=p[mn[i]],v=suf[mn[i+1]].fi;cout<<u<<' '<<v<<endl;}
}signed main(){ios::sync_with_stdio(false);cin.tie(0);int T=1;cin>>T;while(T--)solve();return 0;
}

很棒的一场Div3!

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

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

相关文章

Debian 12/13可用的华宇输入法 .deb 14M安装后 40M 词很多

词库:addr computer food names sports agriculture chemistry construct machine physics beijing colleges economics music sifa (司法) sys (系统) 搞了个thin版,.deb 14M,安装后40M,详情在最后面。 链接: htt…

2025沈阳防水补漏服务推荐:极冠快修,全国连锁品牌深耕沈阳本土,凭实力出圈

随着城市化进程的加快和建筑使用年限的增长,防水补漏已成为家庭和企业日常维护的重要需求。无论是房屋屋顶、卫生间、地下室等常见漏水问题,还是大型工程的防水施工,选择专业可靠的服务团队至关重要。在2025年的沈阳…

【Kubernetes】集成Prometheus + Grafana监控

Kubernetes使用Prometheus + Grafana添加监控 为 Kubernetes 添加监控是一个系统性的工程,通常被称为 “Kubernetes 可观测性”。一个完整的监控体系主要包括指标收集、日志聚合和链路追踪。这里我们将重点放在最核心…

Debian 12/13可用的华宇输入法, .deb 14M安装后 40M,词很多

词库:addr computer food names sports agriculture chemistry construct machine physics beijing colleges economics music sifa (司法) sys (系统) 搞了个thin版,.deb 14M,安装后40M,详情在最后面。 链接: htt…

2025最新沈阳防水补漏服务TOP5推荐:本地堵漏、漏水检车、防水补漏,从住宅到工建,一站式专业快速解决

随着建筑防水需求的不断增长,市场对专业防水补漏服务的要求日益提高。本榜单基于技术实力、服务范围、施工质量、客户口碑四大维度,结合行业权威数据及用户反馈,全面解析2025年沈阳地区五大防水补漏品牌综合实力,为…

XHORSE XZPG00EN Special PCB Board for Peugeot Citroen DS – 5pcs/lot for Reliable Repairs

When Smart Key Repairs Become a Headache: The Peugeot, Citroen, and DS Challenge For European and American automotive professionals and car owners, managing smart keys for Peugeot, Citroen, and DS mode…

从原则到协议:价值原语化——多元共生AI伦理的技术实现范式

从原则到协议:价值原语化——多元共生AI伦理的技术实现范式 摘要: 人工智能的伦理治理已从原则性探讨步入工程化实践的关键阶段。本文提出并剖析了“价值原语行为协议”这一技术哲学概念,它旨在将抽象的、多义的伦理…

Swift 多线程读变量安全吗?

Swift 多线程读变量安全吗?前文,我们讲了在 Rust 中多线程读 RefCell 变量不安全的例子(见 Rust RefCell 多线程读为什么也 panic 了?),同样的例子,如果在 Swift 中,多线程读变量安全吗? 先看测试用例: clas…

Xhorse BMW G-Chassis BDC02 IMMO Authorization for Key Tool Plus, VVDI2, MIDI

BMW G-Chassis IMMO Challenges: A Pain Point for Mechanics and Car Owners For European and American automotive professionals and enthusiasts, BMW G-Chassis vehicles (e.g., G01 X3, G05 X5, G11 7-Series) …

从原则到协议:论价值原语化多元共生AI伦理的技术化实现范式

从原则到协议:论价值原语化多元共生AI伦理的技术化实现范式 摘要: 人工智能的伦理治理已从原则性探讨步入工程化实践的关键阶段。本文提出并剖析了“价值原语行为协议”这一技术哲学概念,它旨在将抽象的、多义的伦理…

XHORSE XKGA81EN All Black GAO8 Style Universal Wired Remote - 5pcs/lot (European/American Fit)

Problem: Outdated or Incompatible Remotes for European and American Vehicles In the dynamic world of automotive repair, technicians and car owners often encounter a frustrating challenge: sourcing reli…

102302110高悦作业3

作业①: 要求:指定一个网站,爬取这个网站中的所有的所有图片,例如:中国气象网(http://www.weather.com.cn)。实现单线程和多线程的方式爬取。 –务必控制总页数(学号尾数2位)、总下载的图片数量(尾数后3位)等…

从原则到协议:论价值原语作为多元共生AI伦理的技术化实现范式

从原则到协议:论价值原语作为多元共生AI伦理的技术化实现范式 摘要: 人工智能的伦理治理已从原则性探讨步入工程化实践的关键阶段。本文提出并剖析了“价值原语行为协议”这一技术哲学概念,它旨在将抽象的、多义的伦…

用Google AI Studio生成了一个学习闹铃管理系统

简介 这是用AI生成的学校闹钟系统,可用于日常学习。 1.在线预览 点我 2.本地运行 1.克隆项目到本地 git clone https://github.com/Juna3066/study-alarm-system.git 2. 安装依赖 本地电脑安装了: Node.js 项目根目录…

GODIAG VAG Test Platforms Full Package: All-in-One IMMO Key Matching for 2nd-4th Gen VAG Dashboards

The IMMO Key Matching & Diagnostics Challenge for VAG Vehicles For European and American automotive professionals and car owners, dealing with Volkswagen (VW), Audi, Skoda, and Seat (VAG) vehicles’…

第三十二天

今天的学习聚焦在“路径检索”相关知识,尤其是最短路径的匹配方法,收获特别扎实。 先理清了路径检索的核心两种方法:深度优先搜索(DFS)像走迷宫时一条路走到黑再回溯,优先探完一条分支再换方向;广度优先搜索(B…

第三十五天

今天的学习聚焦在“路径检索”相关知识,尤其是最短路径的匹配方法,收获特别扎实。 先理清了路径检索的核心两种方法:深度优先搜索(DFS)像走迷宫时一条路走到黑再回溯,优先探完一条分支再换方向;广度优先搜索(B…

2025-11-21 nestJS报错:找不到名称“Get”。

代码:import { Controller } from @nestjs/common;@Controller(article) export class ArticleController {@Get()index() {return 我是一个文章列表;} }原因:没有引入Get装饰器 修复后的代码:import { Controller,…

第三十四天

今天的学习聚焦在“路径检索”相关知识,尤其是最短路径的匹配方法,收获特别扎实。 先理清了路径检索的核心两种方法:深度优先搜索(DFS)像走迷宫时一条路走到黑再回溯,优先探完一条分支再换方向;广度优先搜索(B…

第三十三天

今天的学习聚焦在“路径检索”相关知识,尤其是最短路径的匹配方法,收获特别扎实。 先理清了路径检索的核心两种方法:深度优先搜索(DFS)像走迷宫时一条路走到黑再回溯,优先探完一条分支再换方向;广度优先搜索(B…