AtCoder ABC376A-D题解

个人觉得 ABC 变得越来越难了/kk/kk/kk

比赛链接:ABC376

Problem A:

Code

#include <bits/stdc++.h>
using namespace std;
int main(){int N,C;cin>>N>>C;for(int i=1;i<=N;i++)cin>>T[i];int ans=0,pre=-1e5;for(int i=1;i<=N;i++){if(T[i]-pre>=C){ans++;pre=T[i];}}cout<<ans<<endl;return 0;
}

Problem B:

我愿称之为史上最难 B 没有之一。

Sol

暴力模拟即可。注意细节。

Code

#include <bits/stdc++.h>
using namespace std;
int main(){int N,Q;cin>>N>>Q;int l=1,r=2,ans=0;while(Q--){char H;int T;cin>>H>>T;if(H=='L'){if((l<T && T<r) || (T<r && r<l) || (r<l && l<T)){for(;l!=T;l++){if(l==N+1)l=1;if(l==T)break;ans++;}}else{for(;l!=T;l--){if(l==0)l=N;if(l==T)break;ans++;}}}else{if((l<T && T<r) || (r<l && l<T) || (T<r && r<l)){for(;r!=T;r--){if(r==0)r=N;if(r==T)break;ans++;}}else{for(;r!=T;r++){if(r==N+1)r=1;if(r==T)break;ans++;}}			}}cout<<ans<<endl;return 0;
}

Problem C:

我觉得 C>D。

Sol

二分套二分。考虑二分答案。在 check 函数中又要二分第一个大于等于 X 的数。在代码中,我选择了二分答案的下标。

Code

#include <bitch/stdc++.h>
using namespace std;
const int maxn=200005;
int N,A[maxn],B[maxn];
bool check(int x){for(int i=1;i<=N;i++){if(i==x)continue;if(A[i]>B[i-(i>x)])return false;}return true;
}
int main(){cin>>N;for(int i=1;i<=N;i++)cin>>A[i];for(int i=1;i<N;i++)cin>>B[i];sort(A+1,A+N+1);sort(B+1,B+N);int l=1,r=N;while(l<r){int mid=(l+r)>>1;if(check(mid))r=mid;elsel=mid+1;}if(check(l))cout<<A[l]<<endl;elsecout<<-1<<endl;return 0;
}

Problem D:

Sol

考虑 bfs。从 1 开始,只要第二次遍历到 1 就输出即可。

Code

#include <bits/stdc++.h>
using namespace std;
const int maxn=200005;
bool vis[maxn];
vector<int> graph[maxn];
queue<pair<int,int>> que;
int bfs(){while(!que.empty()){pair<int,int> u=que.front();que.pop();for(auto v:graph[u.first]){if(v==1)return (u.second+1);if(!vis[v]){que.push(make_pair(v,u.second+1));vis[v]=true;}}}return -1;
}
int main(){int N,M;cin>>N>>M;for(int i=1;i<=M;i++){cin>>a>>b;graph[a].push_back(b);}que.push(make_pair(1,0));cout<<bfs()<<endl;return 0;
}

友情提醒:不要无脑Ctrl C+Ctrl V

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

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

相关文章

APP专项测试-冷启动-流量-电量-内存

1、响应时间 1.1怎么获取冷启动时间&#xff08;热启动&#xff0c;就是后台不关后台再次打开&#xff09; 方法一 1.2怎么获取包名 与 启动页 方法三soloPi&#xff1a;启动时间(用户角度出发&#xff0c;页面差异进行计算时间)&#xff1a; 然后默认配置。点击开始录制 1开…

今日头条躺赚流量:自动化新闻爬取和改写脚本

构建一个自动化的新闻爬取和改写系统&#xff0c;实现热点新闻的自动整理和发布&#xff0c;需要分为以下几个模块&#xff1a;新闻爬取、信息解析与抽取、内容改写、自动发布。以下是每个模块的详细实现步骤和代码示例&#xff1a; 1. 新闻爬取模块 目标&#xff1a;从新闻网…

leetcode hot100【LeetCode 146. LRU缓存】java实现

LeetCode 146. LRU缓存 题目描述 设计和实现一个 LRU (Least Recently Used) 缓存机制。它应该支持以下操作&#xff1a; get(key)&#xff1a;如果缓存中存在 key&#xff0c;则返回 value&#xff0c;否则返回 -1。put(key, value)&#xff1a;如果缓存已满&#xff0c;移…

未来汽车驾驶还会有趣吗?车辆动力学系统简史

未来汽车驾驶还会有趣吗&#xff1f;车辆动力学系统简史 本篇文章来源&#xff1a;Schmidt, F., Knig, L. (2020). Will driving still be fun in the future? Vehicle dynamics systems through the ages. In: Pfeffer, P. (eds) 10th International Munich Chassis Symposiu…

高边坡稳定安全监测预警系统解决方案

一、项目背景 高边坡的滑坡和崩塌是一种常见的自然地质灾害&#xff0c;一但发生而没有提前预告将给人民的生命财产和社会危害产生严重影响。对高边坡可能产生的灾害提前预警、必将有利于决策者采取应对措施、减少和降低灾害造成的损失。现有的高边坡监测技术有人工巡查和利用测…

Java基础题:循环求水仙花数

所谓水仙花数&#xff0c;是指一个三位数abc&#xff0c;如果满足 a^3b^3c^3abc&#xff0c;则abc 是水仙花数&#xff0c;此处^表示次方。 分析&#xff1a;因为这里求得的是水仙花的3位数&#xff0c;定义一个方法接收3位数&#xff0c;对每一位进行取值&#xff0c;最后进行…

python3的基本数据类型:字符串的其他操作

一. 简介 前面文章学习了 python3 中字符串的创建&#xff0c;连接与转化。文章如下&#xff1a; 本文继续来学习 python3 中字符串的其他操作。 二. python3 的基本数据类型&#xff1a;字符串的其他操作 1. 字符转义 python3 中使用反斜杠 \ 转义特殊字符&#xff0c;它…

Docker 搭建mysql

拉取mysql镜像 docker pull mysql # 拉取镜像 [rooteason ~]# docker pull mysql Using default tag: latest latest: Pulling from library/mysql 72a69066d2fe: Pull complete 93619dbc5b36: Pull complete 99da31dd6142: Pull complete 626033c43d70: Pull complete 37d…

Vue 常用的狗钩子函数

beforeCreate(){ console.log(刚刚创建实例); },created(){console.log(实例创建完成);},beforeMount(){console.log(模板编译之前 ); },mounted(){/* 请求数据&#xff0c;操作Dom时常用 */console.log(实力挂载完成);},beforeUpdate(){console.log(更新前)},update…

JavaEE----多线程(二)

文章目录 1.进程的状态2.线程的安全引入3.线程安全的问题产生原因4.synchronized关键字的引入4.1修饰代码块4.2修饰实例方法4.3修饰静态方法4.4对象头介绍4.5死锁-可重入的特性 5.关于死锁的分析总结5.1死锁的分析5.2死锁成因的必要条件5.3死锁的解决方案 1.进程的状态 public…

网站被浏览器提示“不安全”,如何快速解决

当网站被浏览器提示“不安全”时&#xff0c;这通常意味着网站存在某些安全隐患&#xff0c;需要立即采取措施进行解决。 一、具体原因如下&#xff1a; 1.如果网站使用的是HTTP协议&#xff0c;应立即升级HTTPS。HTTPS通过使用SSL证书加密来保护数据传输&#xff0c;提高了网…

leetcode 504.七进制数

1.题目要求: 2.题目代码: class Solution { public:string convertToBase7(int num) {string s;int n abs(num);if(num 0){s.push_back(0);return s;}//采用迭代法&#xff0c;对基数进行求余while(n){s.push_back(n % 7 0);n / 7;}if(num < 0){s.push_back(-);}//反转字…

java对接U9C接口

使用java对接U9C的svn接口&#xff0c;说起来也不复杂&#xff0c;走过了路才敢这么说&#xff0c;大致步骤如下&#xff1a; 1.找到接口地址 http://U9地址/Services/***.svc,打开接口地址&#xff0c;如下显示为正常 2.确定需要的参数 接口开发前需要大致了解哪些是必须的…

Flux危,SD 3.5王者归来!个人可以免费商用!

StabilityAI最新发布了Stable Diffusion 3.5&#xff0c;这次公开发布包括多个模型&#xff0c;包括Stable Diffusion 3.5 Large和Stable Diffusion 3.5 Large Turbo。此外&#xff0c;Stable Diffusion 3.5 Medium将于10月29日发布。这些模型因其大小而具有高度的可定制性&…

SpringSecurity 简单使用,实现登录认证,通过过滤器实现自定义异常处理

1.基本配置 Configuration EnableWebSecurity Slf4j public class SecurityConfig {//自定义过滤器Autowiredprivate JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter;//登录认证服务Autowiredprivate UserDetailsService userDetailsService;//自定义权限失败处理…

状态栏黑底白字后如何实现圆角以及固定状态栏

如何实现如下效果: 上述是将状态栏实现黑底白字+圆角+状态栏固定的逻辑 具体代码patch如下: From 6a3b8ed5d3f49a38d8f9d3e488314a66ef5576b8 Mon Sep 17 00:00:00 2001 From: andrew.hu <andrew.hu@quectel.com> Date: Fri, 18 Oct 2024 16:43:49 +0800 Subject: [P…

跟《经济学人》学英文:2024年10月19日这期 Why the world is so animated about anime

Why the world is so animated about anime Japan’s cartoons have conquered its screens, and more 为什么世界对动漫如此热衷 animated&#xff1a;热衷的&#xff1b;生动的&#xff1b;活泼的&#xff1b;活跃的 anime&#xff1a;美 [ˈnɪmeɪ] 动漫 原文&#xff…

Java程序员如何获得高并发经验?

高并发编程 提到并发编程很多人就会头疼了&#xff1b;首先就是一些基础概念&#xff1a;并发&#xff0c;并行&#xff0c;同步&#xff0c;异步&#xff0c;临界区&#xff0c;阻塞&#xff0c;非阻塞还有各种锁全都砸你脸上&#xff0c;随之而来的就是要保证程序运行时关键…

探索计算机技术的无限可能:从基础到前沿的深度之旅

引言 在这个日新月异的数字时代&#xff0c;计算机技术无疑是推动社会进步与创新的核心力量。从最初的简单计算工具到如今无处不在的智能设备&#xff0c;计算机技术的飞跃不仅重塑了我们的生活方式&#xff0c;也深刻地影响了科学研究、工业生产、医疗健康、教育娱乐等多个领域…

在 Ubuntu 上安装和卸载 PyCharm (2024)

文章目录 1. 安装 PyCharm1.1 下载 PyCharm1.2 解压文件1.3 移动文件夹到 /opt 目录1.4 创建桌面快捷方式1.5 设置执行权限1.6 启动 PyCharm 2. 卸载 PyCharm2.1 查找 PyCharm 安装位置2.2 删除安装目录2.3 删除桌面快捷方式和菜单项2.4 清理配置文件和缓存 3. 总结 PyCharm 是…