学校周赛(1)

A - Short Sort

题目:

思路:

本条题目只允许改一处地方,只有三个字母,我们可以直接枚举所有移动过的结果,同时使用哈希去记录其值,对于每一个输入我们都寻找是否有这个值记录,有则输出YES否则NO

代码:
#include<iostream>
#include<map>
using namespace std;
int main(){map<string,int> h;//初始化哈希h["abc"]=1;h["acb"]=1;h["cba"]=1;h["bac"]=1;int n;cin>>n;while(n--){string str;cin>>str;if(h[str]==1) cout<<"YES"<<endl;else  cout<<"NO"<<endl;}return 0;
}

B - Good Kid

题目:

思路:

本题当中的数值全为正数,要想乘积最大则只需要最小值变大即可,因此首先对数组进行排序,将最小的数字+1,然后相乘即可。

代码:
#include<iostream>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
int main(){int t;cin>>t;while(t--){int n;cin>>n;int sum;vector<int> a(n);for(int i=0;i<n;i++) cin>>a[i];sort(a.begin(),a.end());sum=++a[0];for(int i=1;i<n;i++) sum*=a[i];cout<<sum<<endl;}return 0;
}

C - Target Practice

题目:

思路:

本题遍历五个环并乘以相应的值即可,五个环我们可以发现是完全对称的状态,我们可以通过不断缩小环即可。

代码:
#include<iostream>
#include<map>
#include<vector>
#include<algorithm>
#include<cstring>
using namespace std;
int solve(){string cnt[10];for(int i=0;i<10;i++) cin>>cnt[i];//完全对称int k=1;int sum=0;for(int top=0;top<5;top++){int c=0;for(int i=top;i<10-top;i++) if(cnt[i][top]=='X') c++;//i 0-9 j=0 第一列 for(int i=top+1;i<10-top-1;i++) if(cnt[10-top-1][i]=='X') c++;//i 9 j 1-8 最后一行for(int i=top;i<10-top;i++) if(cnt[i][10-top-1]=='X') c++;//i 0-9 j=9 最后一列for(int i=top+1;i<10-top-1;i++) if(cnt[top][i]=='X') c++;//i 0 j 1-8第一行 sum+=c*k; k++;}return sum;
}
int main(){int t;cin>>t;while(t--){int ans=solve();cout<<ans<<endl;}return 0;
}

D - 1D Eraser

题目:

思路:

本题问最小多少次能够将其染成W,只需要我们每次遇到B时,都进行k个染色即可

代码:
#include<iostream>
#include<map>
#include<vector>
#include<algorithm>
#include<cstring>
using namespace std;
int solve(){int ans=0;int n,k;cin>>n>>k;string str;cin>>str;for(int i=0;i<n;){if(str[i]=='B'){ans++;i+=k;} else i++;} return ans;
}
int main(){int t;cin>>t;while(t--){int ans=solve();cout<<ans<<endl;}return 0;
}

E - Building an Aquarium

题目:

思路:

本题考察的时二分,我们可以假设答案h初始值为0,然后将其慢慢上移,直到满足条件,此处不难看出h具有单调递增的特点,因此我们使用二分进行搜索答案,对于我们搜索出的二分只有当高度为h时所需水量小于等于我们提供的水量才能够满足我们的条件,满足条件则记录,最终取其最大值。

优化:当我们判断水是否满足时,可以先做一个排序,因为高度越小的所需要的水量越多,同时减少由于要遍历所带来的更多的判断步骤。

代码:
#include<iostream>
#include<vector>
using namespace std;typedef long long ll;void solve()
{int n, w;cin >> n >> w;vector<ll> a(n);for (int i = 0; i < n; i ++)cin >> a[i];
//此处排序,减少判断次数sort(a.begin(), a.end());ll l = 0, r = 2e9 + 1;
//二分答案hwhile (l < r){ll h = (l + r + 1) >> 1;ll t = 0;for (int i = 0; i < n; i ++)if (a[i] < h)t += h - a[i];else break;if (t <= w) l = h;else r = h - 1;}cout << r << endl;
}int main()
{int T; cin >> T;while (T --) solve();return 0;
}

F - Money Trees

题目:

思路:

本题考查的前缀和+滑动窗口,我们可以在统计统计前i个的和,那么窗口中的和则为 第r个 - 第l-1个,其次我们可以通过前缀和的思想来考虑哪一段树可以摘(r~r-b[r]),对于每一段我们通过滑动窗口的思想来确定边界。

代码:
#include<iostream>
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
#define ll long long void to_do() {ll n, k, ans = 0, sum = 0;cin >> n >> k;vector<ll> cnt_num(n + 1), a(n + 1);vector<ll> cnt_h(n + 1);for (int i = 1; i <= n; i++) {cin >> a[i];cnt_num[i] = cnt_num[i - 1] + a[i];//前缀和,某个连续部分的和为cnt_num[r]-cnt_num[l-1]}for (int i = 1; i <= n; i++) cin >> cnt_h[i];ll l = 0, l_max=0;vector<int> b(n + 1);//可摘树的长度int idx = 0;for (int r = 1; r <= n; r++){//记录可摘树的长度if (r == 1|| cnt_h[r - 1] % cnt_h[r]){b[r] = 0;}else{b[r] = b[r - 1] + 1;}int l = max(r - b[r], idx);ll res = cnt_num[r] - cnt_num[l - 1];if (res <= k){ans = max(ans, r - l + 1ll);}else{while (res > k){res -= a[l];l++;}idx = l;ans = max(ans, r - l + 1ll);}}cout << ans << endl;
}
int main()
{int t; cin >> t;while (t--) to_do();return 0;
}

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

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

相关文章

数据结构与算法——Java实现 19.队列

目录 一、概述 二、链表实现队列 接口定义 接口实现类 测试类 三、环形数组实现队列 优点 下标计算 判满和判空 判满 判空 辅助变量size判空和判满 方法1 接口定义 接口实现类 测试类 方式2 接口定义 接口实现类 测试类 方法3 接口定义 接口实现类 测试类 生活鲜少给人留下退…

项目实战:构建高效可扩展的Flask Web框架:集成Flask-SQLAlchemy、Marshmallow与日志管理

前言 在Web开发中&#xff0c;构建一个既高效又可扩展的框架是项目成功的基石。Flask作为一个轻量级的Web应用框架&#xff0c;凭借其易用性和灵活性&#xff0c;特别适合快速开发和原型设计。结合Flask-SQLAlchemy&#xff08;为Flask提供SQLAlchemy ORM支持的扩展&#xff0…

剑指 offer 刷题集

目录 数组 1. LCR 121. 寻找目标值 - 二维数组 2. LCR 120. 寻找文件副本 3. LCR 128. 库存管理 I 4. LCR 131. 砍竹子 I 5. LCR 132. 砍竹子 II 6. LCR 135. 报数 7. LCR 139. 训练计划 I 8. LCR 158. 库存管理 II 9. LCR 159. 库存管理 III 10. LCR 160. 数据流中…

计算机毕业设计 在线项目管理与任务分配系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

一文带你读懂分库分表,分片,Sharding的许多概念

一文带你读懂分库分表,分片,Sharding的许多概念 分库是将一个库拆分为多个库&#xff0c;分表就是将一个表拆分为多个表。分库分表有垂直拆分和水平拆分。垂直拆分一般是按照业务将表分到不同的库中&#xff08;此种不在本发的讨论范围&#xff09;。水平拆分是将表的数据拆分…

HEITRONICS TC13红外辐射高温计CT13 INFRARED RADIATION PYROMETER CT13

HEITRONICS TC13红外辐射高温计CT13 INFRARED RADIATION PYROMETER CT13

华为玄玑感知系统震撼发布:智能穿戴新品引领情绪健康新纪元

在科技日新月异的今天&#xff0c;华为再次以其卓越的创新能力&#xff0c;为智能穿戴领域带来了一场革命性的变革。 8月28日&#xff0c;华为玄玑感知系统暨穿戴创新技术发布会圆满落幕&#xff0c;会上正式揭晓了这款名为“玄玑”的神秘感知系统&#xff0c;预示着穿戴设备将…

.netcore nacos注册成功,服务列表找不到任何服务

命令空间id不要自动生成 .netcore 配置文件里&#xff0c;Namespace 配置命名空间id 而不是命名空间名称。

宠物空气净化器希喂和352哪个好用?两大爆火机型哪款吸毛、除臭效果比较好?

猫毛、狗毛、鹦鹉毛&#xff0c;总之只要家里养着有带毛的宠物&#xff0c;毛就会出现在各种地方&#xff0c;床上、沙发上、衣服上、水杯里...根本躲不开。而且&#xff0c;除了肉眼可见的&#xff0c;呼吸时、说话时&#xff0c;不经意间还会吃到毛毛。这些毛毛飘在空气里时&…

动手学LLM(ch2)

2.1 理解词嵌入 深度神经网络模型&#xff0c;包括大型语言模型&#xff08;LLMs&#xff09;&#xff0c;无法直接处理原始文本&#xff0c;因为文本是分类数据&#xff0c;与神经网络的数学运算不兼容。为了达到这个目的&#xff0c;需要将单词转换为连续值向量。记住一句话…

17【Protues单片机仿真】基于51单片机的太阳能智能谷物翻晒机器人

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机&#xff0c;避障&#xff0c;低于50CM报警&#xff0c;LED灯亮起&#xff0c;自动翻晒用光敏电阻&#xff0c;光照强度大&#xff0c;电机转动&#xff0c;相当于翻晒粮食&#xff0…

Linux——pod的调度

pod的调度 控制器: rc/rs 副本数量控制器 主要保证pod的数量符合管理员要求&#xff0c;并不会对pod进行额外的管理 以下三种控制器&#xff0c;本质上是服务控制器。具备以下特性&#xff1a; 副本数量的控制服务的滚动更新&#xff08;更新pod&#xff09;支持更新失…

高校教师成果管理小程序的设计与实现springboot(lw+演示+源码+运行)

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对高校教师成果信息管理混乱&#xff0c;出错率高&#xff0c;信息安全…

C++ STL初阶(14): map和set

1.关联式容器与键值对 前导文章&#xff1a;C 二叉树进阶-CSDN博客 之前我们学习的线性的容器&#xff0c;如&#xff1a;vector deque list等都叫作序列式容器 与之对立的概念是关联式容器 关联式容器 也是用来存储数据的&#xff0c;与序列式容器不同的是&#xff0c;其 里面…

【C++】检测TCP链接超时——时间轮组件设计

目录 引言 时间轮思想 设计的核心思路 完整代码 组件接口 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 引言 对于高并发的服务器来说&#xff0c;链接是一种比较珍贵的资源&#xff0c;对不活跃的链接应该及时释放。判断连接是否活跃的策略是——在给定的时间内&#…

Redis中BigKey与MoreKey优化笔记

1.MoreKey 在Redis中&#xff0c;MoreKey问题通常指的是当数据库中的key数量非常多时&#xff0c;使用如KEYS *这样的命令去检索所有的key&#xff0c;这会导致Redis服务阻塞&#xff0c;影响正常业务。因为Redis是单线程操作的&#xff0c;执行这类命令时会占用大量时间&…

Arthas redefine(加载外部的.class文件,redefine到JVM里 )

文章目录 二、命令列表2.2 class/classloader相关命令2.2.3 redefine&#xff08;加载外部的.class文件&#xff0c;redefine到JVM里 &#xff09;举例1&#xff1a;加载新的代码&#xff0c;jad/mc 命令使用举例2&#xff1a;上传 .class 文件到服务器的技巧 二、命令列表 2.…

柯桥韩语学校|韩语每日一词打卡:회갑연[회가변]【名词】花甲宴

今日一词:회갑연 韩语每日一词打卡&#xff1a;회갑연[회가변]【名词】花甲宴 原文:인구 노령화에 따라서 요즘 회갑연보다는 고희연을 더 많이 지냅니다. 意思&#xff1a;随着人口老龄化&#xff0c;最近比起花甲宴&#xff0c;更多人办古稀宴。 【原文分解】 1、인구[인구]…

【BurpSuite】访问控制漏洞和权限提升 | Access control vulnerabilities (3-6)

&#x1f3d8;️个人主页&#xff1a; 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞&#x1f44d;收藏&#x1f497;支持一下哦 【BurpSuite】访问控制漏洞和权限提升 | Access control vulnerabilities (3-6&#xff09; 实验三 Lab: User role controlled b…

【IoT-NTN】系统消息SIB31信令分析

3GPP卫星通信发展迅速&#xff0c; TS36.331 R17中新增SIB31携带星历信息&#xff0c;本文对SIB31的信令内容进行了分析。 SystemInformationBlockType31 分析报告 一、概述 本文档详细描述了SystemInformationBlockType31&#xff08;简称SIB31&#xff09;的结构和内容&am…