马蹄集 开学季活动赛

目录

最大的平均值

门票

二阶前缀和

最大异或和

背军理

信号灯

切蛋糕

矩形

矩阵01变

运动会进行中

三连

距离平方和


最大的平均值


黄金时间限制:1秒巴 占用内存:128 M少难度:
给一个数组,长度为n,找一个长度大于等于m的子区间,使这个区间的元素的平均值最大
格式
输入格式:第一行输入整数 n 和 m ,数据间用空格隔开接下来 n 行,每行输入一个整数 ai 。
输出格式:输出一个整数,表示平均值的最大值乘以 1000 再向下取整之后得到的结果

//
// Created by abner on 2024/3/6.
//
#include <bits/stdc++.h>
using namespace std;
const double eps=1e-6;
const int N=1e5 +10;
int n,m;
double a[N],sum[N],l,r;int check(double mid){double minn =0;for (int i=1;i<=n;i++)sum[i] = sum[i - 1] + a[i] - mid;for(int i=m;i<=n;i++){//假设第i个数是尾巴minn = min(minn,sum[i - m]);if (sum[i] >= minn)return 1;}return 0;
}
int main(){cin >>n >>m;for (int i=1;i<=n;i++) {cin >> a[i];r = max(r, a[i]);}while (r-l>=eps) {double mid = (l + r) / 2;if (check(mid))l = mid;elser = mid;}cout <<(int)(r * 1000)<<endl;return 0;}

门票


少 难度:钻石 时间限制:1秒巴 占用内存:128 M
小码哥家附近的一个主题公园最近搞了一个活动,小码哥在活动中获得了一等奖。而一等奖是一长串的纸条,上面有几个格子,每个格子里有一个数字,活动人员告诉小码哥,只要他裁下一段连续的格子,格子内数字的总和/裁下的格子的数量大于等于门票费t,那么小码哥就能用这段格子抵消门票费。
小码哥想要尽可能多的利用这个奖品,为此他想先知道有多少种裁剪的方案能裁出一段能抵消门票费的格子。
由于方案数可能很大所以需要你输出方案数对1e9+7取模的结果

//
// Created by abner on 2024/3/6.
//
#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 +7;
const int N = 1e6 + 10;
#define ll long long
ll n,t,a[N],sum[N],ans;
ll q[N];
void merge_sort(int l,int r,ll *a) {if (l >= r)return;int mid = l + r >> 1;merge_sort(l, mid, a), merge_sort(mid + 1, r, a);int i = l, j = mid + 1, t = 0;while (i <= mid && j <= r) {if (a[i] <= a[j]) {q[t++] = a[j++];ans += mid - i + 1;//降序排列,//求非逆序数ans %= MOD;} elseq[t++] = a[i++];}while (i <= mid) q[t++] = a[i++];while (j <= r) q[t++] = a[j++];for (i = l, j = 0; i <= r; i++, j++)a[i] = q[j];
}int main(){cin >>n >>t; for(int i=1;i <= n;i++) {cin >> a[i];a[i] -= t;sum[i] = sum[i - 1] + a[i];}merge_sort(0,n,sum);cout <<ans % MOD;return 0;}

二阶前缀和


难度:黄金时间限制:1秒巴: 占用内存:128 M
在一个直角坐标系上,有个坐标上有元素值(其余坐标的元素值为0),现给定一些点的坐标(2i,y)和这个坐标的元素值",计算用一个边长为R的正矩形能囊括 坐标的元素值的和的最大值。不包括正方形的边界。
格式
输入格式:输入文件的第一行为两个正整数n和 R;接下来的 n 行每行有3个自然数,分别表示 i,yi,ui。
输出格式:输出文件仅有一个正整数,表示一个正方形最多能囊括地图上的最大的元素值之

//
// Created by abner on 2024/3/6.
//
#include <bits/stdc++.h>
const int N =1010;
int a[N][N],s[N][N],ans;
using namespace std;
int main() {int n, r;cin >> n >> r;while (n--) {int x, y, w;cin >> x >> y >> w;x++, y++;a[x][y] += w;}for (int i = 1; i <= 1001; i++) {for (int j = 1; j <= 1001; j++) {s[i][j] += s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1] + a[i][j];}}for (int i = r; i <= 1001; i++) {for (int j = r; j <= 1001; j++) {ans =max(ans, s[i][j] - s[i - r][j] - s[i][j - r] + s[i - r][j - r]);}}cout << ans;return 0;
}

最大异或和


难度:黄金 时间限制:2秒巴 占用内存:128 M
给定一串手链,每个珠子被赋予一个价值w;,现要从中截取连续的一段,使得他们的异或和最大(注意,手链还未串上)。
格式
输入格式:第1行包含一个正整数 N;
第 2 行 n 个正整数 wi ,表示珠子价格。
输出格式:一个正整数,输出最大异或和。

//
// Created by abner on 2024/3/6.
//
#include <bits/stdc++.h>
using namespace std;
int n,a[2010],sum[2010],ans =-0x3f3f3f3f;
int main() {cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];sum[i] = sum[i - 1] ^ a[i];}for (int i = 1; i <= n; i++)for (int j = 1; j <= i; j++)ans = max(ans, sum[i] ^ sum[j - 1]);cout << ans;return 0;
}

背军理


难度:黄金 时间限制:1秒巴 占用内存:128 M
天哪天哪,军理有好多知识需要背呀。老师已经在厚厚的军理书上(该书一共有n页)画上了若干重点。我们现在已经知道,第i页有a;个重点。
现在小码哥向你询问了q次,每次询问给定一个闭区间,y,请你输出从第x页开始到第y页结束,这些页数之间一共有多少重点。
格式
输入格式:第一行一个整数n,表示书的总页数(书页码编号从第一页开始)接下来一行输入 n 个整数 a;,表示该页上的老师画的重点个数;接下来一行一个整数q,表示小码哥的询问次数;

//
// Created by abner on 2024/3/6.
//
#include <bits/stdc++.h>
using namespace std;
const int N=1e5 + 10;
int n,q,num[N],sum [N];
int main() {cin >> n;for (int i = 1; i <= n; i++) {cin >> num[i];sum[i] = sum[i - 1] + num[i];}cin >> q;int x, y;while (q--) {cin >> x >> y;cout << sum[y] - sum[x - 1] << endl;}return 0;
}

信号灯


难度:钻石时间限制:1秒巴 占用内存:128 M
小码哥的农场有很多牛,这些牛很聪明,它们想和人一样过马路,于是小码哥给它们修建了马路。但因为牛又不是那么聪明,他们有时会撞坏信号灯,小码哥很苦恼。于是小码哥想请你帮忙算一下最少修好几个信号灯,可以有个编号连续的信号灯?注:共有N个信号灯,编号为1~N,有B个信号灯损坏,给你它们的编号
格式
输入格式:第一行输入三个正整数 N,K,B(1≤B,K≤N);接下来 B 行每行一个整数描述破损的灯的编号。

//
// Created by abner on 2024/3/6.
//
#include <bits/stdc++.h>
using namespace std;
const int N=1e5 +10;
int n,k,b,a[N],sum[N],ans = 0x3f3f3f3f;
int main(){cin >>n >>k>>b;int tmp;while (b--){cin >>tmp;a[tmp] = 1;}for(int i=1;i<=n;i++)sum[i] = sum[i-1] + a[i];for (int i=1;i+k-1 <= n;i++)ans = min(ans,sum[i +k-1]-sum[i -1]);cout <<ans;return 0;
}

切蛋糕


难度:钻石时间限制:1秒巴 占用内存:128 M
今天是小码哥的生日,家里人买了蛋糕。蛋糕由不同色彩分成了几个相同的部分,每一部分上面的水果都不同。由于小码哥对水果很有研究,他给每个水果都打了分。小码哥希望能吃到最多分数,但他又最多只能吃m块(m<n)。请你帮他从这n小块中找出连续的最多 m 块蛋糕使得其上的总分数最大。
格式
输入格式:第一行两个整数 n,m,意思如题目介绍;第二行 几 个整数,第 i个整数代表第 讠部分的分数。

//
// Created by abner on 2024/3/6.
//
#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 +10;
int m,n,a[N],s[N],q[N],ans =-0x3f3f3f3f;
int main(){cin >>n >>m;
for (int i=1;i<=n;i++){
cin >>a[i];
s[i]=s[i-1]+a[i];
}deque<int>q;for (int i=1;i<=n;i++){if (!q.empty()&&q.front()<i-m + 1)q.pop_front();while (!q.empty() && s[i] < s[q.back()])q.pop_back();q.push_back(i);ans = max(ans,s[i]-s[q.front()]);}cout << ans;return 0;
}

矩形


乡 难度:钻石 时间限制:1秒巴:占用内存:128 M
给定一个 N*M的矩阵,1表示已经占用了,0表示没有被占用,求一个由0构成的矩阵,使其周长最大。
格式
输入格式:第一行两个整数 n,m 含义如上;
接下来 n 行每行 m 个数表示这个矩阵
输出格式:输出一个数,表示最大周长。

//
// Created by abner on 2024/3/6.
//
#include <iostream>
#include <vector>
using namespace std;int main() {int n, m;cin >> n >> m;vector<vector<int>> matrix(n, vector<int>(m));for (int i = 0; i < n; ++i) {for (int j = 0; j < m; ++j) {char ch;cin >> ch;matrix[i][j] = ch - '0';}}int maxPerimeter = 0;for (int i = 0; i < n; ++i) {for (int j = 0; j < m; ++j) {if (matrix[i][j] == 0) {for (int x = i; x < n; ++x) {for (int y = j; y < m; ++y) {if (matrix[x][y] == 0) {bool isValid = true;// Check if all cells inside the rectangle are unoccupiedfor (int a = i; a <= x && isValid; ++a) {for (int b = j; b <= y && isValid; ++b) {if (matrix[a][b] == 1) {isValid = false;}}}if (isValid) {// Calculate perimeterint perimeter = 2 * (x - i + 1) + 2 * (y - j + 1);maxPerimeter = max(maxPerimeter, perimeter);}} else {break;}}}}}}cout << maxPerimeter << endl;return 0;
}

矩阵01变


难度:黄金时间限制:1秒巴 占用内存:128 M
给定一个 N*M的矩阵,由0和1组成。现在请你求出,对于每个点(,y),以(1,1)为左上角,(x,y)为右下角的矩阵中包含多少个1。
例如:
000
010
000
的答案为:
000
0 1 1

//
// Created by abner on 2024/3/6.
//
#include <bits/stdc++.h>
using namespace std;
char a[110][110];
int b[110][110],sum[110][110];
int m,n;
int main(){scanf("%d%d",&m,&n);for (int i=1;i<=m;++i)scanf("%s",a[i]+1);for (int i=1;i<=m;i++) {for (int j = 1; j <= n; j++) {if (a[i][j] == '1')b[i][j] = 1;}}for (int i = 1;i<=m;i++){for (int j=1;j <= n;j++){sum[i][j] =sum[i-1][j]+sum[i][j-1] - sum[i-1][j-1]+b[i][j];}}for (int i =1;i<=m;i++){for (int j=1;j<=n;j++){cout<<sum[i][j]<<" ";}cout <<endl;}return 0;}

运动会进行中


乡 难度:钻石
时间限制:1.3秒四占用内存:128 M
运动会快到了,小码哥班里组织彩排,小码哥作为体委不得不担当同学排队列的大任
为了让男女分配均匀,小码哥想知道队列中男女生人数一样的子序列(连续的)最多多长。
格式
输入格式:第一行一个正整数n,代表学生的人数,其中:n≤100000;第二行 n 个用空格隔开的数,这些数只能是。或 1,其中:。代表女生,1代表男生。
输出格式:输出一个非负整数,这个数表示在输入数据中最长的一段男女人数相等的子序列

//
// Created by abner on 2024/3/6.
//
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 +7;
int n,a [N],sum[N],l[N*2],r[N*2],ans;
int main(){cin >>n;for(int i=1;i<=n;i++) {cin >> a[i];if (a[i] == 0)//将女生用-1表示,更容易计算前缀和a[i] = -1;sum[i] = sum[i - 1] + a[i];//前缀和后,寻找相同数字的最远距离int tmp = sum[i] + n;//sum[i]的范围是-n到n,矫正下保证为正数if (!l[tmp])l[tmp] = i;elser[tmp] = i;}for (int i=0;i<2 * n;i++)ans = max(ans,r[i]-l[i]);cout <<ans <<endl;return 0;
}

三连


少 难度:钻石时间限制:1秒四 占用内存:128 M
给出一个长度为n的序列,问有多少种方案将序列划分为恰好连续的三段(每个元素都属于某一段),使得每一段的和都相等。
格式
输入格式:第一行:一个整数n;
第二行: n 个整数,表示序列。
输出格式:一个整数表示方案数。

//
// Created by abner on 2024/3/6.
//
#include <bits/stdc++.h>
using namespace std;
int n,a[100005],s,now,ans,tot;//tot三等分点个数
int main(){cin >>n;for (int i=1;i<=n;i++){cin >> a[i];s += a[i];}for (int i=1;i<=n;i++){now +=a[i];if (now* 3 == s * 2 && i<n)ans += tot;if (now * 3==s)tot++;}cout <<ans;return 0;}

距离平方和


黄金时间限制:1秒巴占用内存:128 M难度:
你有几个点,请编写一个程序,求这n个点的距离的平方和。
格式
输入格式:第一行:-个整数n(0<n<100000)接下来n行:每行两个整数,y,表示该点坐标(-10000 ≤x,y≤
10000)
输出格式:仅一行:所有点的距离的平方和。

//
// Created by abner on 2024/3/6.
//
#include <bits/stdc++.h>
using namespace std;
#define ll long longll ans,sx,sy,n;int main() {cin >> n;for (int i = 0; i < n; ++i) {int x, y;cin >> x >> y;ans += (n - 1) * (x * x + y * y) - ((x * sx + y * sy) * 2);sx += x, sy += y;}cout << ans;return 0;
}

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

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

相关文章

【Redis】redis的基本使用

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;Redis ⛺️稳中求进&#xff0c;晒太阳 Redis的概述 为什么要有redis? redis是数据库&#xff0c;mysql也是数据库&#xff0c;redis做缓存的意义就是为了减轻数据库压力 数据库为什么…

微信公众号公司主体变更怎么办?

公众号迁移的好处有哪些&#xff1f;迁移后原公众号还能用吗&#xff1f;1&#xff09;获得更多权限功能如果公众号是个人主体&#xff0c;想进行认证&#xff0c;拥有更多权限功能。例如菜单栏跳转外部链接&#xff0c;相拥有留言功能&#xff0c;服务号认证获得开发权限等。就…

平台总线式驱动开发

一、总线、设备、驱动 硬编码式的驱动开发带来的问题&#xff1a; 垃圾代码太多 结构不清晰 一些统一设备功能难以支持 开发效率低下 1.1 初期解决思路&#xff1a;设备和驱动分离 struct device来表示一个具体设备&#xff0c;主要提供具体设备相关的资源&#xff08;如…

openEuler系统远程SSH远程连接

文章目录 1. 本地SSH连接测试2. openEuler安装Cpolar3. 配置 SSH公网地址4. 公网远程SSH连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 欧拉操作系统(openEuler, 简称“欧拉”)是面向数字基础设施的操作系统,支持服务器、云计算、边缘openEuler是面向数字基础设施的操作系…

基于51单片机的心率体温检测系统设计

目 录 摘 要 I Abstract II 引 言 1 1 控制系统设计 2 1.1 主控系统方案设计 2 1.2 脉搏传感器方案设计 3 1.3 系统工作原理 5 2 硬件设计 6 2.1 主电路 6 2.1.1 单片机的选择 6 2.1.2 STC89C51的主要功能及性能参数 6 2.1.3 STC89C51单片机引脚说明 6 2.2 驱动电路 8 2.2.1 比…

第八篇 - 预测受众(Predictive audience)技术是如何赋能数字化营销生态的?- 我为什么要翻译介绍美国人工智能科技巨头IAB公司

IAB平台&#xff0c;使命和功能 IAB成立于1996年&#xff0c;总部位于纽约市。 作为美国的人工智能科技巨头社会媒体和营销专业平台公司&#xff0c;互动广告局&#xff08;IAB- the Interactive Advertising Bureau&#xff09;自1996年成立以来&#xff0c;先后为700多家媒…

基于springboot+vue的政府管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

2024BAT大厂Android社招面试题,OMG,学它

开头 中国互联网发展的这些年&#xff0c;如今90后程序员是中国程序员的主力军&#xff0c;互联网的热潮也让一批批00后蠢蠢欲动&#xff0c;尝试涌入互联网圈。 当程序员容易&#xff0c;当一个优秀的程序员需要不断学习&#xff0c;从初级程序员到高级程序员&#xff0c;从…

【NR 定位】3GPP NR Positioning 5G定位标准解读(三)

目录 前言 5 NG-RAN UE定位架构 5.1 架构 5.2 UE定位操作 5.3 NG-RAN定位操作 5.3.1 通用NG-RAN定位操作 5.3.2 OTDOA定位支持 5.3.3 广播辅助信息支持 5.3.4 NR RAT相关定位支持 5.4 NG-RAN中与UE定位相关的元素功能描述 5.4.1 用户设备&#xff08;UE&#xff09; …

蓝桥杯嵌入式省赛模板构建——测量两路频率和占空比

结合测量一路PWM频率编程 测量占空比&#xff1a;测量高电平持续时间和周期 思路&#xff1a; ①.第一次上升沿中断&#xff0c;清零计数器&#xff0c;开始计时并改成下降沿中断 ②.下降沿中断&#xff0c;获取计数值T1&#xff0c;并改为上升沿中断 ③.第二次上升沿中断…

小猫挑食不吃猫粮是为什么?排行榜靠前适口性好的生骨肉冻干分享

现在的猫咪主人都把自家的小猫当成了心头的宝贝&#xff0c;呵护备至。但宠爱过度有时会导致猫咪形成挑食的坏习惯。小猫挑食不吃猫粮是为什么呢&#xff1f;面对这一问题&#xff0c;我们应该如何解决呢&#xff1f; 今天&#xff0c;我给大家剖析一下小猫挑食不吃猫粮是为什…

青少年软件编程图形化编程等级考试二级模拟测试

青少年软件编程图形化编程等级考试二级模拟测试 第 1 题 【单选题】 下面积木块的执行结果是&#xff1f;&#xff08; &#xff09; A :香蕉苹果 B :香蕉和苹果 C :香苹 D :香果 正确答案:D 试题解析: 第 2 题 【单选题】 执行下面的指令后&#xff0c; 舞台上的小…

ActivityRecordInputSink深入剖析全网独家分析

背景&#xff1a; 学员粉丝朋友们在学习马哥的android framework实战高级课程时候&#xff0c;有一些细心的学员提出了一个无问题&#xff0c;那就是再看dumpsys SurfaceFlinger的图层或者是dumpsys input相关信息时候发现了一个叫做ActivityRecordInputSink的图层。 如下图所…

OWASP Top 10 网络安全10大漏洞——A02:A02:2021-加密机制失效

10大Web应用程序安全风险 2021年top10中有三个新类别、四个类别的命名和范围变化&#xff0c;以及一些合并。 A02&#xff1a;A02:2021-加密机制失效 上升一个位置&#xff0c;当前top2&#xff0c;以前称为敏感数据泄露&#xff0c;是一种状况而不是根本原因。更新后的类别…

MacOS开发环境搭建

MacOS开发环境搭建 一、MacOS二、Python三、MacOS搭建Python开发环境1.Python下载地址1.1 Python官网地址1.2 Python下载地址 2.安装Python3.安装Python4.安装PyCharm5.创建一个Python项目6.配置PyCharm7.安装Python包8.运行Python代码9.总结 一、MacOS macOS是一套由苹果开发的…

2024京东Java面试真题解析,每次面试必问的二叉树的设计与编码

一、背景 我们日常在电商网站购物时经常会遇到一些高并发的场景&#xff0c;例如电商 App 上经常出现的秒杀活动、限量优惠券抢购&#xff0c;还有我们去哪儿网的火车票抢票系统等&#xff0c;这些场景有一个共同特点就是访问量激增&#xff0c;虽然在系统设计时会通过限流、异…

前面说什么是前后端分类,那到底是怎么个分类法呢?

前后端分离是指将一个web 系统的动态内容和静态内容进行分离&#xff0c;包括其开发、部署等。 比如传统的 MVC 架构&#xff0c;HTML、JS、CSS… 等前端代码和 Java、spring、mybatis… 等后端代码是在同一个项目中进行开发、部署的。那前后端分离后&#xff0c;就可以分多个项…

学习vue3使用在线官方开发环境play.vuejs.org进行测试

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a; http://122.227.135.243:9666 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbach…

C++ STL自定义排序

更具体的看【速记】C STL自定义排序 - 知乎 (zhihu.com) sort sort第三个位置放的greater<int>和less<int>萌新可能会弄错&#xff0c;这两个单词不是更大和更小的意思&#xff0c;而是大于和小于&#xff0c;并且比较就是自定义排序中的前者和后者。 如果是less…

如何使用DS file+cpolar内网穿透实现远程访问本地群晖NAS传输文件

文章目录 1. 群晖安装Cpolar2. 创建TCP公网地址3. 远程访问群晖文件4. 固定TCP公网地址5. 固定TCP地址连接 DS file 是一个由群晖公司开发的文件管理应用程序&#xff0c;主要用于浏览、访问和管理存储在群晖NAS&#xff08;网络附加存储&#xff09;中的文件。这个应用程序具有…