【CF比赛记录】 —— Codeforces Round 920 (Div. 3)(A、B、C、D)

🌏博客主页:PH_modest的博客主页
🚩当前专栏:CF比赛记录
💌其他专栏:
🔴每日一题
🟡 cf闯关练习
🟢 C语言跬步积累
🌈座右铭:广积粮,缓称王!

A. Square

👉传送门👈
在这里插入图片描述

1.Tutorial

直接暴力每个点直接的距离,然后排个序,排序后的结果为:宽、宽、长、长、斜边、斜边,第一个和第三个就是宽和长,因为一个点和另外几个点组成的边分为三种:宽、长、斜边。根据斜边大于宽和长就可以得到前面的结论。

2.Solution

//https://codeforces.com/contest/1921/problem/A
//
//
#include<bits/stdc++.h>
#define int long long
using namespace std;int f(int x,int y)
{return sqrt(x*x+y*y);
}void solve()
{int s[8];int a,aa,b,bb,c,cc,d,dd;cin>>a>>aa>>b>>bb>>c>>cc>>d>>dd;s[0]=f(abs(a-b),abs(aa-bb));s[1]=f(abs(a-c),abs(aa-cc));s[2]=f(abs(a-d),abs(aa-dd));s[3]=f(abs(b-c),abs(bb-cc));s[4]=f(abs(b-d),abs(bb-dd));s[5]=f(abs(c-d),abs(cc-dd));sort(s,s+6);int x=s[0],y=s[2];cout<<x*y<<"\n";
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin>>t;while(t--){solve();}return 0;
}

3.Conclusion

这边不建议使用hypot来求斜边(我一开始用了之后结果会出错,浪费了我好长时间


B. Arranging Cats

👉传送门👈
在这里插入图片描述

1.Tutorial

  • 结论:分别记录操作一和操作二的次数,最大的就是结果。
  • 推导:分别统计需要放入猫的数量(操作一,pt),和需要移除猫的数量(操作二,mov),因为这两个可以合并成一个动作完成(操作三),两个值当中求取一个最小的(minn),这个就是合并成操作三,然后用这两个数的较大值减去较小值就是得到需要单独完成的次数(maxx-minn),两个相加就得到结果了(minn+maxx-minn)。

2.Solution

//https://codeforces.com/contest/1921/problem/B
//
//
#include<bits/stdc++.h>
#define int long long
using namespace std;void solve()
{int n;cin>>n;string s,f;cin>>s>>f;int mov=0,pt=0;for(int i=0;i<n;i++){if(s[i]=='1'&&f[i]=='0'){mov++;}else if(s[i]=='0'&&f[i]=='1'){pt++;}}int minn=min(mov,pt);int maxx=max(mov,pt);int ans=minn+maxx-minn;cout<<ans<<"\n";
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin>>t;while(t--){solve();}return 0;
}

C. Sending Messages

👉传送门👈
在这里插入图片描述

1.Tutorial

每次可以选择两种操作:

  • 操作一:不黑屏,一直亮屏到下一次发消息(x*a)(x表示经过的时间,a表示单位时间失去的电量)
  • 操作二:黑屏,到下一次发消息再亮屏(b)(b表示操作二需要花费的电量)

只需要每次发消息前比较一下哪种情况消耗的电量少,最后判断一下电量是否大于0即可

2.Solution

//https://codeforces.com/contest/1921/problem/C
//
//
#include<bits/stdc++.h>
#define int long long
using namespace std;int s[200020];
int v[200020];
void solve()
{int n,f,a,b;cin>>n>>f>>a>>b;s[0]=0;for(int i=1;i<=n;i++){cin>>s[i];}for(int i=0;i<n;i++){v[i]=s[i+1]-s[i];if(v[i]*a<b){f-=(v[i]*a);}else{f-=b;}}if(f>0) cout<<"YES\n";else cout<<"NO\n";}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin>>t;while(t--){solve();}return 0;
}

3.Conclusion

这种题目很容易想复杂,建议先以简单的情况写,发现结果不对再改,不然很浪费时间


D. Very Different Array

👉传送门👈
在这里插入图片描述

1.Tutorial

贪心
每次肯定是选差值最大的,差值最大会在两种情况下产生:

  • a数组中最大的 - b数组中最小的
  • b数组中最大的 - a数组中最小的

所以只需要比较这两个值,取最大值即可

具体操作就是先将两个数组排序,因为是直接判断,顺序对结果没有影响,然后将排好序的数组分别尾插到双端队列中(方便尾删和头删),然后遍历判断即可

2.Solution

//https://codeforces.com/contest/1921/problem/D
//
//
#include<bits/stdc++.h>
#define int long long
using namespace std;int a[200020];
int b[200020];
deque<int>s;
deque<int>v;
int ans=0;
int k=0;
int m,n;void solve()
{s.clear();v.clear();cin>>n>>m;for(int i=0;i<n;i++){cin>>a[i];}for(int i=0;i<m;i++){cin>>b[i];}sort(a,a+n);sort(b,b+m);for(int i=0;i<n;i++){s.push_back(a[i]);}for(int i=0;i<m;i++){v.push_back(b[i]);}ans=0;for(k=0;k<n;k++){if(abs(s.back()-v.front())>abs(v.back()-s.front())){ans+=(abs(s.back()-v.front()));s.pop_back();v.pop_front();}else{ans+=(abs(v.back()-s.front()));s.pop_front();v.pop_back();}}cout<<ans<<"\n";
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin>>t;while(t--){solve();}return 0;
}

最后:

CF比赛记录系列旨在记录比赛过程,所以对代码的解释并不会特别详细,但足够引导大家写出来,选的题目都不会特别难,但也不是特别简单,比较考验大家的基础和应用能力,我希望能够将这个系列一直写下去,也希望大家能够和我一起坚持每天写代码。

之后每个星期都会不定期更新codeforces和atcoder上的题目,想要学习算法的友友们千万别错过了,有什么疑问欢迎大家在评论区留言或者私信博主!

在这里送大家一句话:广积粮,缓称王!

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

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

相关文章

学习使用微信小程序实现智能名片电子名片功能代码

学习使用微信小程序实现智能名片电子名片功能代码 拨打手机号功能一键复制信息功能定位导航功能存入手机通讯录功能转发分享功能 拨打手机号功能 wx.makePhoneCall({phoneNumber: qipa250 //仅为示例&#xff0c;并非真实的电话号码 })一键复制信息功能 wx.getClipboardData(…

【ARMv8M Cortex-M33 系列 7.1 -- xPSR | CFSR | HFSR | BFAR | MMFAR 寄存器】

文章目录 问题背景Cortex-M33 Fault 寄存器介绍xPSR (程序状态寄存器)CFSR (可配置故障状态寄存器)HFSR (硬件故障状态寄存器)BFAR (总线故障地址寄存器)MMFAR (内存管理故障地址寄存器) 问题背景 由于在RA4M2&#xff08;Cortex-M33&#xff09;移植RT-Thread OS的时候遇到了…

mysql limit

语法 SELECT * FROM TABLE_NAME LIMIT 起始位置&#xff0c;偏移量注&#xff1a; 起始位置从0开始 示例 查询的第1条数据到第100条数据 limit 0,100查询的第101条数据到第200条数据 limit 100,100注意不要用 limit 101,100示例2 limit 语句应放在order by语句后面执行 …

Java调用WebService接口,SOAP协议HTTP请求返回XML对象

Java调用Web service接口SOAP协议HTTP请求&#xff0c;解析返回的XML字符串&#xff1a; 1. 使用Java的HTTP库发送SOAP请求&#xff0c;并接收返回的响应。 可以使用Java的HttpURLConnection、Apache HttpClient等库。 2. 将返回的响应转换为字符串。 3. 解析XML字符串&…

第十五届蓝桥杯单片机组——串口通信UART

文章目录 一、什么是串口通信二、UART重要参数三、利用STC-ISP生成初始化代码四、使用UART发送和接收数据 一、什么是串口通信 微控制器与外部设备的数据通信&#xff0c;根据连线结构和传送方式的不同&#xff0c;可以分为两种:并行通信和串行通信。   并行通信:指数据的各位…

亚马逊云科技 WAF 部署小指南(六)追踪 Amazon WAF Request ID,排查误杀原因

众所周知&#xff0c;中国是全球制造业的巨大力量&#xff0c;许多中国企业通过 2B 电商平台网站进行商品销售和采购。在这些电商平台上&#xff0c;Web 应用防火墙&#xff08;WAF&#xff09;成为不可或缺的安全工具。然而&#xff0c;WAF 也可能导致误杀问题。一旦误杀发生&…

计算机毕设thinkphp+mysql+_vue房屋租赁系统h3sem

运行环境:phpstudy/wamp/xammp等 开发语言&#xff1a;php 后端框架&#xff1a;Thinkphp5 前端框架&#xff1a;vue.js 服务器&#xff1a;apache 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat/phpmyadmin 房屋租赁管理系统有不同的用户角色。不同的用户权限对应不…

【办公类-21-03】20240119 提取不连续的男女学号 set()和list法

背景需求&#xff1a;了解班级幼儿性别比例 查看点名册&#xff0c;发现中4班最初的学号是按照先男后女的方式排列&#xff0c;但是随着幼儿转出&#xff0c;空出一些学号&#xff0c;于是新插班的孩子就插入空的学号&#xff0c;空格插完了&#xff0c;就排在学号尾部。 我想…

Docker Consul详解与部署示例

目录 Consul构成 Docker Consul 概述 Raft算法 服务注册与发现 健康检查 Key/Value存储 多数据中心 部署模式 consul-template守护进程 registrator容器 consul服务部署&#xff08;192.168.41.31&#xff09; 环境准备 搭建Consul服务 查看集群信息 registrato…

YOLOv5改进 | 主干篇 | 华为GhostnetV1一种移动端的专用特征提取网络

一、本文介绍 本文给大家带来的改进机制是华为移动端模型Ghostnetv1,华为GhostnetV1一种移动端的专用特征提取网络,旨在在计算资源有限的嵌入式设备上实现高性能的图像分类。GhostNet的关键思想在于通过引入Ghost模块,以较低的计算成本增加了特征图的数量,从而提高了模型的…

【通知】我的教学文章《Rust跟我学》已全部上线

大家好&#xff0c;我是get_local_info开源库作者带剑书生&#xff0c;现在我的《Rust跟我学》专栏文章已全部上线&#xff0c;它记录了我在写库时获得的重要Rust经验和技巧&#xff0c;是不同于《Rust语言编程》等简单实践的书籍。为您节省了学习时间&#xff0c;让您可以快速…

深度剖析Spring循环依赖(实战Bug)

目录 前言1. 问题所示2. 原理分析3. 基本知识4. Lazy注解 前言 通过实战更好的回馈问题&#xff0c;意识更加深刻 起因是我出现如下问题之后&#xff0c;才意识到中了Spring的循环依赖了&#xff01; 1. 问题所示 在执行项目的时候&#xff0c;出现如下问题&#xff0c;问题…

2024.1.19 寒假训练记录(2)

昨晚的cf打得非常抽象&#xff0c;成功从蓝掉到青&#xff0c;不过在心理预期范围内&#xff0c;可以接受&#xff0c;之后每一场都会跟着打大号&#xff0c;能力的提升比表面上的分数更加重要 文章目录 CF 1922A Tricky TemplateCF 1922B Forming TrianglesCF 1922C Closest …

面试之Glide如何绑定Activity的生命周期

Glide绑定Activity生命周期 Glide.with() 下面都是它的重载方法&#xff0c;Context&#xff0c;Activity&#xff0c;FragmentActivity, Fragment, android.app.Fragment fragment,View都可以作为他的参数&#xff0c;内容大同小异&#xff0c;都是先getRetriever&#xff0…

2649. 嵌套数组生成器

说在前面 &#x1f388;不知道大家对于算法的学习是一个怎样的心态呢&#xff1f;为了面试还是因为兴趣&#xff1f;不管是出于什么原因&#xff0c;算法学习需要持续保持。 题目描述 现给定一个整数的 多维数组 &#xff0c;请你返回一个生成器对象&#xff0c;按照 中序遍历…

01 软件工程项目开发流程-需求调研

一、需求调研 获取到客户项目需求后&#xff0c;首先进行项目需求调研&#xff0c;调研项目的业务需求、用户需求、系统需求、性能需求、非功能需求、约束和限制、需求优先级等&#xff0c;具体如下&#xff1a; 业务需求&#xff1a;了解客户的业务目标和战略&#xff0c;这是…

016-Vue-黑马2023:前后端分离开发(在线接口文档),前端工程化、Element、vue编写一个完成页面、Vue路由、vue打包部署到nginx

第三节 前后端分离开发 1、介绍 开发模式 前后端混合开发&#xff1a;传统开发模式 前后端分离开发&#xff1a;当前最为主流的开发模式 页面原型需求案例&#xff1a;分析出接口文档 离线开发文档示例&#xff1a; 2、YAPI&#xff08;官网已停用&#xff09; 202…

汽车微电机行业研究:预计2029年将达到188亿美元

微电机行业是技术密集型行业&#xff0c;其起源于欧洲的德国、瑞士等国家&#xff0c;发展于日本。随着改革开放&#xff0c;中国作为发展中国家&#xff0c;承接了德国、日本等发达国家的汽车微电机产业转移&#xff0c;技术扩散逐步向我国转移。 微特电机广泛应用于信息处理设…

优化微信小程序更新体验:异步更新与强制更新方案解析

在微信小程序的开发和迭代过程中&#xff0c;新版本覆盖率的问题一直备受关注。由于小程序采用异步更新机制&#xff0c;在用户首次打开或冷启动时才会检查并下载新版本&#xff0c;导致部分用户无法及时应用上最新版本。为了解决这一问题&#xff0c;微信团队经过深入研究和讨…

【JavaScript】面向对象之多态

重学JavaScript07----- 面向对象之多态 文章目录 重学JavaScript07----- 面向对象之多态多态 多态 面向对象的三大特性&#xff1a;封装、继承、多态。 JavaScript有多态吗&#xff1f; 维基百科对多态的定义&#xff1a;多态&#xff08;英语&#xff1a;polymorphism&#…