牛客周赛 Round 51
目录
A.小红的同余
B.小红的三倍数
C.小红充电
D.小红的gcd
E.小红走矩阵
F.小红的数组
这次周赛题目比较简单,算法题也基本上是板子题,出得很好(~ ̄▽ ̄)~
A.小红的同余
思路:签到题,别看成逆元题就行
#include<iostream>
#define int long long
using namespace std;int32_t main()
{int m;cin>>m;cout<<(m+1)/2;
}
B.小红的三倍数
思路:签到题,如果这个数能被三整除,则这个数每一位的数相加得到的和也能被三整除
#include<iostream>
#include<cstring>
using namespace std;
int main()
{int n;cin>>n;int sum=0;for(int i=0;i<n;i++){string s;cin>>s;for(int j=0;j<s.size();j++){sum+=s[j]-'0';}}if(sum%3==0)puts("YES");else puts("NO");
}
C.小红充电
思路:总共分两种情况讨论:
① x<=t 时使用超级快充即可
② x>t 时,计算先玩到电量为t时启用超级快充更快还是直接充电更快
#include<iostream>using namespace std;
int main()
{double x,y,t,a,b,c;cin>>x>>y>>t>>a>>b>>c;if(x<=t){printf("%.9lf",(100*1.0-x)/c);}else{double wan=x-t;double t1=1.0*wan/y;//这个地方分母要乘1.0double t2=(100*1.0-t)/c;double t3=(t1+t2);double t4=(100*1.0-x)/b;printf("%.9lf",min(t3,t4));}
}
D.小红的gcd
思路:可以迭代线性遍历a,来求解a%b的值,然后在求gcd(a%b, b)
#include<iostream>
#define int long long
using namespace std;
int gcd(int a,int b)
{return b?gcd(b,a%b):a;
}
int32_t main()
{string a;cin>>a;int b;cin>>b;int res=0;for(auto t:a){res=(res*10+(t-'0'))%b;}cout<<gcd(res,b);
}
E.小红走矩阵
思路:用Dijkstra来写,优先队列每次弹出所有路径最大值的最小值
#include<iostream>
#include<vector>
#include<queue>
#define x first
#define y second
using namespace std;
typedef pair<int,int> PII;
typedef pair<int,PII> PIII;
const int N=505;
int ne[4][2]={{0,1},{0,-1},{1,0},{-1,0}};
int a[N][N],n,dist[N][N];
bool st[N][N];
void Dijkstra()
{priority_queue<PIII,vector<PIII>,greater<PIII>> heap;heap.push({a[1][1],{1,1}});dist[1][1]=a[1][1];while(heap.size()){auto it=heap.top();heap.pop();int xx=it.y.x,yy=it.y.y,ma=it.x;if(st[xx][yy]) continue;st[xx][yy]=true;for(int i=0;i<4;i++){int tx=xx+ne[i][0],ty=yy+ne[i][1];if(tx>=1&&tx<=n&&ty>=1&&ty<=n&&!st[tx][ty]){dist[tx][ty]=max(ma,a[tx][ty]);heap.push({dist[tx][ty],{tx,ty}});}}}
}
int main()
{cin>>n;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++) cin>>a[i][j];Dijkstra();cout<<dist[n][n];
}
F.小红的数组
思路: 线段树板题,跟“你能回答这些问题吗”做法一样,只是多了一个要存储每个区间的最小线段和,这里得用scanf输入才不会超时,关闭流用cin,cout还是会超时
#include<iostream>
#define int long long
using namespace std;
const int N=5e5+5;
int w[N];
struct node{int l,r;int sum,sum_min;int lmax,lmin;int rmax,rmin;int tmax,tmin;
}tr[4*N];void pushup(node &u,node &l,node &r)
{u.sum=l.sum+r.sum;u.lmax=max(l.lmax,l.sum+r.lmax);u.rmax=max(r.rmax,r.sum+l.rmax);u.tmax=max(max(l.tmax,r.tmax),l.rmax+r.lmax);u.sum_min=l.sum_min+r.sum_min;u.lmin=min(l.lmin,l.sum_min+r.lmin);u.rmin=min(r.rmin,r.sum_min+l.rmin);u.tmin=min(min(l.tmin,r.tmin),l.rmin+r.lmin);
}void pushup(int u)
{pushup(tr[u],tr[u<<1],tr[u<<1|1]);
}void build(int u,int l,int r)
{if(l==r) tr[u]={l,l,w[l],w[l],w[l],w[l],w[l],w[l],w[l],w[l]};else{tr[u]={l,r};int mid=(l+r)>>1;build(u<<1,l,mid),build(u<<1|1,mid+1,r);pushup(u);}
}node query(int u,int l,int r)
{if(tr[u].l>=l&&tr[u].r<=r) return tr[u];else{int mid=(tr[u].l+tr[u].r)>>1;if(mid>=r) return query(u<<1,l,r);else if(mid<l) return query(u<<1|1,l,r);else{node L=query(u<<1,l,r);node R=query(u<<1|1,l,r);node res;pushup(res,L,R);return res;}}
}int32_t main()
{int n;scanf("%lld",&n);for(int i=1;i<=n;i++) scanf("%lld",&w[i]);build(1,1,n);int q;scanf("%lld",&q);while(q--){int l,r;scanf("%lld %lld",&l,&r);node res=query(1,l,r);printf("%lld\n",max(abs(res.tmax),abs(res.tmin)));}
}
相关文章:
牛客周赛 Round 51
目录 A.小红的同余 B.小红的三倍数 C.小红充电 D.小红的gcd E.小红走矩阵 F.小红的数组 这次周赛题目比较简单,算法题也基本上是板子题,出得很好(~ ̄▽ ̄)~ A.小红的同余 思路:签到题&am…...
【Linux】详解加锁实现线程互斥
一、多线程不加线程互斥可能会引发的问题 下面是一个抢标逻辑。抢票为什么会抢到负数:假设当票数为1时,此时四个进程的判断条件tickets都大于0,都会进入抢票操作,第一个进程抢完票以后tickets0并写回内存,第二个进程再…...
Java学习高级四
JDK8开始,接口新增了三种形式的方法 接口的多继承 内部类 成员内部类 静态内部类 局部内部类 匿名内部类 import javax.swing.*; import java.awt.event.ActionEvent;public class Test {public static void main(String[] args) {// 扩展 内部类在开发中的真实使用…...
mmc-utils 的 MMC 测试工具
MMC 工具介绍 有一个名为 mmc-utils 的 MMC 测试工具,由 Ulf Hansson 维护,您可以在以下公共 git 存储库中找到它: mmc/mmc-utils.git - Unnamed repository; edit this file description to name the repository. 功能 mmc-utils 工具可以…...
使用Python Turtle绘制圣诞树和装饰
简介(❤ ω ❤) 在这篇文章中,我们将探索如何使用Python的Turtle模块来绘制一个充满节日气氛的圣诞树,以及一些可爱的装饰品。Turtle是一个受Logo语言启发的图形库,非常适合初学者学习编程和创建图形。 码农不是吗喽(大学生版&…...
非常好的新版网盘系统,是一款PHP网盘与外链分享程序,支持文件预览
这是一款PHP网盘与外链分享程序,支持所有格式文件的上传, 可以生成文件外链、图片外链、音乐视频外链,生成外链同时自动生成相应的UBB代码和HTML代码, 还可支持文本、图片、音乐、视频在线预览,这不仅仅是一个网盘&a…...
针对【module_or_function】的单元测试,全面覆盖可能的【edge_cases】
针对【module_or_function】的单元测试,全面覆盖可能的【edge_cases】 编写单元测试是为了验证代码模块或函数的正确性和鲁棒性。对于module_or_function,首先需要确定这个模块或函数的具体功能和预期输入范围。一个好的单元测试应该包括以下几个步骤&a…...
OTA测试!
OTA测试,全称“Over-The-Air Testing”,是一种无线通信设备的性能测试方法,主要用于评估设备在无线传输环境中的性能表现。以下是关于OTA测试的详细介绍: 一、定义与目的 OTA测试着重进行整机辐射性能方面的测试,以评…...
[H最短路] lc2959. 关闭分部的可行集合数目(Floyd最短路+二进制枚举+模板题)
文章目录 1. 题目来源2. 题目解析 1. 题目来源 链接:2959. 关闭分部的可行集合数目 2. 题目解析 看了看题好像还没啥思路,结果一看数据范围,好家伙…n 最大就 10 啊,那不直接闭眼直接 Floyd枚举所有情况即可吗?&…...
pyinstaller用法详解3
本文使用创作助手。 大家好,时隔多日,我又更新了pyinstaller的用法详解! 当然,这一次要比之前更详细,十分详细。 谢谢大家的支持,我们现在开始! 一、快速开始使用pyinstaller 我之前的文章…...
养猫新手不会挑智能猫砂盆?2024最新挑选干货分享!
不得不说智能猫砂盆真的帮了我很大的忙,四年以来我陆陆续续养了很多的猫咪,但是因为需要上班,所以有时候也对铲屎的工作有些力不从心,后面听了朋友的建议,去入手了智能猫砂盆,不得不说买智能猫砂盆也非常的…...
上海理工大学24计算机考研考情分析!初复试分值比55:45,复试逆袭人数不算多!
上海理工大学(University of Shanghai for Science and Technology),位于上海市,是一所以工学为主,工学、理学、经济学、管理学、文学、法学、艺术学等多学科协调发展的应用研究型大学;是上海市属重点建设大…...
Pandas库学习之DataFrame.drop()函数
Pandas库学习之DataFrame.drop()函数 一、简介 DataFrame.drop 是 Pandas 库中一个非常实用的函数,用于删除 DataFrame 中的行或列。通过指定列名或行索引,可以灵活地从数据集中移除不需要的数据。这对于数据清洗和预处理非常有用。 二、语法和参数 D…...
WHAT - 介绍一个不太一样的 UI 组件库 shadcn/ui
目录 一、介绍主要特点核心组件示例代码社区和支持总结 二、copy/paste1. 高度可定制性2. 避免依赖锁定3. 学习和理解4. 简化调试5. 项目需求变化 官方文档:https://ui.shadcn.com/docs 一、介绍 ShadCN (ShadCN/UI) 是一个现代的 React 组件库,旨在提…...
python--实验 11 模块
目录 知识点 模块基础 模块使用方式 自定义模块示例 模块的有条件执行 Python包结构 定义和导入包 常用第三方库及安装 实例代码 第三方库自动安装脚本 Python标准库介绍 PyInstaller 小结 实验 1.(基础题)制作文本进度条。 2.(基础题) 蒙特卡罗方法计算圆周率…...
Vue3+Vite+TS+Axios整合详细教程
1. Vite 简介 Vite是新一代的前端构建工具,在尤雨溪开发Vue3.0的时候诞生。类似于Webpack Webpack-dev-server。其主要利用浏览器ESM特性导入组织代码,在服务器端按需编译返回,完全跳过了打包这个概念,服务器随起随用。生产中利用…...
【深度学习入门篇 ⑨】循环神经网络实战
【🍊易编橙:一个帮助编程小伙伴少走弯路的终身成长社群🍊】 大家好,我是小森( ﹡ˆoˆ﹡ ) ! 易编橙终身成长社群创始团队嘉宾,橙似锦计划领衔成员、阿里云专家博主、腾讯云内容共创官…...
宝塔安装RabbitMq教程
需要放开15672端口,默认账号密码为guest/guest...
韦东山嵌入式linux系列-驱动进化之路:设备树的引入及简明教程
1 设备树的引入与作用 以 LED 驱动为例,如果你要更换LED所用的GPIO引脚,需要修改驱动程序源码、重新编译驱动、重新加载驱动。 在内核中,使用同一个芯片的板子,它们所用的外设资源不一样,比如A板用 GPIO A,…...
长轮询(Long Polling)实现原理和java代码示例
长轮询(Long Polling)背景 长轮询是一种在Web开发中常用的技术,用于实现服务器与客户端之间的即时通信或近乎实时的数据交换。在传统的轮询(Polling)中,客户端会定期向服务器发送请求以检查是否有新数据。…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...





