牛客周赛 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)));}
}

 

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

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

相关文章

Android Studio 不再支持windows 7

Android Studio 一打开就报错&#xff1a; 无法找到入口 无法定位程序输入点 CreateAppContainerProfle 于动态链接库USERENV.dII 上。 截图如下&#xff1a; 经调查&#xff0c;是因为系统版本不兼容。 我目前的电脑环境&#xff1a;windows 7,但是现在的Android Studio要…

24年Hvv准备,6大方向,33篇技战法

进去不少小伙伴后台留言说需要技战法&#xff0c;因此小编对市面上的技战法进行了收集和总结&#xff0c;并对收集来的技战法进行了分类&#xff0c;总共分了6大类&#xff0c;共计33篇&#xff1a; 有需要的小伙伴关注我&#xff0c;点击在看&#xff0c;并私信回复“技战法”…

基于Java的原创歌曲分享平台

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBootMyEclipse 工具&#xff1a;MyEclipse、B/S架构 系统展示 首页 用户注册界面 音乐分享…

【python】OpenCV—Coordinates Sorted Clockwise

文章目录 1、需求介绍2、算法实现3、完整代码 1、需求介绍 调用 opencv 库&#xff0c;绘制轮廓的矩形边框&#xff0c;坐标顺序为右下→左下→左上→右上&#xff0c;我们实现一下转化为熟悉的 左上→右上→右下→左下 形式 按照这样的顺序组织边界框坐标是执行透视转换或匹…

21天学通C++:第十三、十四章节

第十三章&#xff1a;类型转换运算符 类型转换是一种机制&#xff0c;让程序员能够暂时或永久性改变编译器对对象的解释。注意&#xff0c;这并不意味着程序员改变了对象本身&#xff0c;而只是改变了对对象的解释。可改变对象解释方式的运算符称为类型转换运算符。 为何需要…

深入理解 Vue.js 中的 nextTick:原理与应用

深入理解 Vue.js 中的 nextTick&#xff1a;原理与应用 在使用 Vue.js 开发复杂的前端应用时&#xff0c;你可能会遇到这样一种情况&#xff1a;你希望在数据更新后立即执行某些操作&#xff0c;但发现 DOM 并没有如预期那样立即更新。这时&#xff0c;nextTick 就派上用场了。…

数据库端口LookUp功能:从数据库中获取并添加数据到XML

本文将为大家介绍如何使用知行之桥EDI系统数据库端口的Lookup功能&#xff0c;从数据库中获取数据&#xff0c;并添加进输入的XML中。 使用场景&#xff1a;期待以输入xml中的值为判断条件从数据库中获取数据&#xff0c;并添加进输入xml中。 例如&#xff1a;接收到包含采购…

简述乐观锁和悲观锁——Java

悲观锁和乐观锁 悲观就是任何事都认为会往坏处发生&#xff0c;乐观就是认为任何事都会往好处发生。 打个比方&#xff0c;假如一个公司里只有一台打印机&#xff0c;如果多个人同时打印文件&#xff0c;可能出现混乱的问题&#xff0c;他的资料打印在了我的资料上&#xff0…

docker 容器内部UI映射host

方法有很多&#xff0c; 目前我总计一个我自己尝试成功的方法&#xff0c;通过xpra。 Xpra可以看作是screen或tmux的图形版本&#xff0c;支持远程X11应用程序的显示和交互。 在远程服务器上&#xff0c;安装Xpra&#xff1a; sudo apt-get install xpra启动Xpra服务器会话&…

代码设计模式:一句话直击内涵与意义、极简代码示例、基础3类27种,以及更多概念与视角

有些设计模式日用而不知&#xff0c;有些设计模式看似概念复杂实则内核简单&#xff0c;还有些设计模式则化繁为简直至少即是多——本文&#xff0c;将在极简形式下&#xff0c;传递出基础设计模式最核心的基本思想&#xff0c;一共3类27种&#xff0c;即&#xff1a;创建型模式…

Yolov8网络结构学习

详解YOLOv8网络结构/环境搭建/数据集获取/训练/推理/验证/导出/部署 深入解析YOLOv8&#xff1a;网络结构与推理过程 YOLO? You Know! --YOLOV8详解 一&#xff1a;yolov8总体结构 1.Backbone:它采用了一系列卷积和 反卷积层只来提取特征&#xff0c;同时也使用了残差连接和…

C# —— HashTable

集合collections命名空间&#xff0c;专门进行一系列的数据存储和检索的类&#xff0c;主要包含了:堆栈、和队列、list、ArrayList、数组 HashTable 字典 storeList 排序列表等类 Array 数组 长度固定&#xff0c; 类型固定 通过索引值来进行访问 ArrayList动态数组&#xff0c…

网站开发:使用VScode安装yarn包和运行前端项目

一、首先打开PowerShell-管理员身份运行ISE 输入命令&#xff1a; set-ExecutionPolicy RemoteSigned 选择“全是”&#xff0c;表示允许在本地计算机上运行由本地用户创建的脚本&#xff0c;没有报错就行了 二、接着打开VScode集成终端 输入 npm install -g yarn 再次输入以…

小程序-3(页面导航+页面事件+生命周期+WXS)

目录 1.页面导航 声明式导航 导航到tabBar页面 导航到非tabBar页面 后退导航 编程式导航 后退导航 导航传参 声明式导航传参 编程式导航传参 在onload中接收导航参数 2.页面事件 下拉刷新 停止下拉刷新的效果 ​编辑 上拉触底 配置上拉触底距离 上拉触底的节…

js补环境系列之剖析:原型、原型对象、实例对象三者互相转化(不讲废话、全是干货)

【作者主页】&#xff1a;小鱼神1024 【擅长领域】&#xff1a;JS逆向、小程序逆向、AST还原、验证码突防、Python开发、浏览器插件开发、React前端开发、NestJS后端开发等等 思考下&#xff1a;js补环境中&#xff0c;什么场景会用到原型、原型对象、实例对象&#xff1f; 举…

【前端异步问题】通过Promise.all()解决异步取值问题

场景 有一个对象数组itemList,数组中的对象有的有属性attr,有的没有。没有属性a的对象需要通过调用接口获取并赋值给相应对象。 再将处理完后的对象数组&#xff0c;传入另一个接口中。 let itemList [{ id: 0, attr: 雨伞},{ id: 1, attr: null},{ id: 2, attr: 水杯},{ id: …

【用户投稿】使用 SeaTunnel 进行 HTTP 同步到 Doris 实战经验分享

需求背景 由于我司的项目中需要接入不同的数据源的数据到数仓中&#xff0c;在选择了众多的产品中最后选择了Apache SeaTunnel&#xff0c;对比参考 目前我这边使用的接口&#xff0c;暂时没有接口认证&#xff0c;如果需要接口认证的方式接入数据&#xff0c;再做讨论及测试…

谈谈大数据采集和常见问题

01 什么是数据采集 数据采集是大数据的基石&#xff0c;不论是现在的互联网公司&#xff0c;物联网公司或者传统的IT公司&#xff0c;每个业务流程环节都会产生大量的数据&#xff0c;同时用户操作的日志也会产生大量的数据&#xff0c;为了将这些结构化和非结构化的数据进行…

[C/C++入门][for]24、菲波那契数列

斐波那契数列是数学中的一个经典数列&#xff0c;以其独特的递归性质而闻名。 数列的前两项通常是0和1&#xff08;或者有时从1开始&#xff0c;当然这个不是强制要求&#xff09;&#xff0c;之后的每一项都是前两项的和。数列的前几项如下所示&#xff1a; 0, 1, 1, 2, 3, …

docker网络互联

最近学习docker的时候发现多了很多网卡&#xff0c;这些似乎都和docker有关&#xff0c;所以我便往下深入了解了一番&#xff1b; 一、docker网卡 docker 0是安装 docker 的时候生成的虚拟网桥&#xff0c;它在内核层连通了其他物理或者虚拟网卡&#xff0c;这就可以将所…