企业网站建设哪家好/seo搜索优化费用
A:
打卡题
题目描述
一中队和二中队正在进行一场棒球比赛,一中队是第一棒。
目前,比赛已进行到第九局上半,第九局下半即将开始。
一中队在 第i局 (1 <= i <= 9) 上半场得到了 Ai 分,二中队在 第j局 (1 <= j <= 8) 下半场得到了 Bj 分。
第九局上半结束时,一中队的得分不低于二中队的得分。
求二中队在第九局下半至少需要得到多少分才能赢得比赛。
在这里,如果比赛在第九局下半结束时打成平手,结果就是平局。因此,二中队要想获胜,就必须在第九局下半结束时比一中队严格多得一分。
一中队在任何时候的得分都是截至该点的上半局总得分,而二中队的得分则是下半局的总得分。
输入
A1 A2 A3 A4 A5 A6 A7 A8 A9
B1 B2 B3 B4 B5 B6 B7 B8
输出
打印二中队在第九局下半段至少需要得到多少分才能获胜。
样例输入1
0 1 0 1 2 2 0 0 1
1 1 0 0 0 0 1 0
样例输出1
5
样例输入2
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
样例输出2
1
#include<iostream>
using namespace std;
int main(){int middle_school_1=0;int middle_school_2=0;for(int i=0;i<9;i++){int a;cin>>a;middle_school_1+=a;}for(int i=0;i<8;i++){int x;cin>>x;middle_school_2+=x;}cout<<middle_school_1-middle_school_2+1;return 0;
}
B:
简单题
题目描述
给你两个网格,每个网格都有 N 行和 N 列,分别称为网格 A 和网格 B 。
网格中的每个单元格都包含一个小写英文字母。
网格 A 的 i 行和 j 列的字符是 𝐴𝑖,𝑗 。
网格 B 的 i 行和 j 列的字符是 𝐵𝑖,𝑗 。
这两个网格正好有一个单元格不同。也就是说,存在一对 (i, j) 不大于 N 的正整数,使得 𝐴𝑖,𝑗 != 𝐵𝑖,𝑗 。
求这个 (i, j)
输入
N
𝐴1,1 𝐴1,2... 𝐴1,𝑁
𝐴2,1 𝐴2,2... 𝐴2,𝑁
......
𝐴𝑁,1 𝐴𝑁,2... 𝐴𝑁,𝑁
𝐵1,1 𝐵1,2... 𝐵1,𝑁
𝐵2,1 𝐵2,2... 𝐵2,𝑁
......
𝐵𝑁,1 𝐵𝑁,2... 𝐵𝑁,𝑁
输出
设 (i, j) 是一对不大于 N 的正整数,且 𝐴𝑖,𝑗 != 𝐵𝑖,𝑗 .按以下格式打印 (i, j) :
i j
样例输入1
3
abc
def
ghi
abc
bef
ghi
样例输出1
2 1
样例输入2
1
f
q
样例输出2
1 1
样例输入3
10
eixfumagit
vtophbepfe
pxbfgsqcug
ugpugtsxzq
bvfhxyehfk
uqyfwtmglr
jaitenfqiq
acwvufpfvv
jhaddglpva
aacxsyqvoj
eixfumagit
vtophbepfe
pxbfgsqcug
ugpugtsxzq
bvfhxyehok
uqyfwtmglr
jaitenfqiq
acwvufpfvv
jhaddglpva
aacxsyqvoj
样例输出3
5 9
思路:直接暴力枚举
#include<bits/stdc++.h>
using namespace std;
char s1[105][105],s2[105][105];
int main() {int n;cin>>n;for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>s1[i][j];for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cin>>s2[i][j];if(s1[i][j]!=s2[i][j]){cout<<i<<" "<<j;return 0;}}}return 0;
}
C:
简单题
题目描述
你有一个空序列和 N 个球。球 (1 <= i <= N) 的大小是 2^{Ai} 。
你将进行 N 次运算。
在第i次操作中,你将把第i个球添加到序列的右端,然后重复下面的步骤:
1. 如果序列中只有一个或更少的球,则结束操作。
2. 如果序列中最右边的球和第二个最右边的球大小不同,结束操作。
3. 如果序列中最右边的球和最右边的第二个球的大小相同,则移除这两个球,并在序列的右端添加一个新球,其大小等于移除的两个球的大小之和。然后回到步骤 1,重复上述过程。
计算 N 操作后序列中剩余的球数。
输入
N
A1 A2 ... An
输出
打印 N 操作后序列中的球数。
样例输入1
7
2 1 1 3 5 3 3
样例输出1
3
样例输入2
5
0 0 0 1 2
样例输出2
4
思路:小球的操作符合栈的特性(stack),用栈存储小球数据
#include<bits/stdc++.h>
using namespace std;
stack<int> s;//栈
int n,x;
int main(){cin>>n;for(int i=1;i<=n;i++){cin>>x;s.push(x);while(s.size()>=2){int a=s.top();s.pop();int b=s.top();s.pop();if(a!=b){s.push(b);s.push(a);break;}else s.push(a+1);}}cout<<s.size();return 0;
}
D:
搜索题
题目描述
有一个行数为 H ,列数为 W 的网格。有些单元格(可能为零)包含磁铁。
网格的状态由长度为 W 的 H 个字符串 S1, S2, ..., SH 表示。如果 Si 的 第j个 字符是 "#",则表示在从上往下的第i行和从左往右的第j列的单元格中有磁铁;如果是".",则表示单元格是空的。
身穿铁甲的小奇可以在网格中做如下移动:
- 如果与当前单元格垂直或水平相邻的任何一个单元格中含有磁铁,他就不能移动。
- 否则,他可以移动到任何一个垂直或水平相邻的单元格。
但是,他不能离开网格。
对于每个没有磁铁的单元格,将其自由度定义为他从该单元格重复移动所能到达的单元格数。求网格中所有没有磁铁的单元格的最大自由度。
这里,在自由度的定义中,"他可以通过重复移动到达的单元格 "指的是从初始单元格通过一定的移动序列(可能是零移动)可以到达的单元格。不一定要有一个移动序列能从初始单元格开始访问所有这些可到达的单元格。具体来说,每个单元格本身(没有磁铁)总是包含在从该单元格可到达的单元格中。
输入
H W
S1
S2
...
𝑆𝐻
输出
打印所有磁铁的最大自由度。
样例输入1
3 5
.#...
.....
.#..#
样例输出1
9
样例输入2
3 3
..#
#..
..#
样例输出2
1
思路:我们先看样例1,让 (i,j) 表示从上往下第 i 行,从左往上第 j 列的单元格。如果小奇开始于 (2,3) ,那么可能的移动包括:
(2,3) -> (2,4) -> (1,4) -> (1,5) -> (2,5)
(2,3) -> (2,4) -> (3,4)
(2,3) -> (2,2)
(2,3) -> (1,3)
(2,3) -> (3,3)
因此,包括他经过的单元格在内,他至少可以从 (2,3) 到达九个单元格。
实际上,没有其他单元格可以到达,因此 (2,3) 的自由度为 9 。
这是所有没有磁铁的单元格的最大自由度,因此打印 9 。
稍微分析一下,可以用BFS来解
#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
int dx[] = {-1, 1, 0, 0}, dy[] = {0, 0, -1, 1};
int ans = 1, cnt = 5;
int h, w;
int vis[1010][1010];
bool check(int x, int y) {bool isi = true;for (int i = 0; i < 4; i ++ ) {int u = x + dx[i], v = y + dy[i];if (vis[u][v] == 2) isi = false;}return isi;
}
void bfs(int x, int y) {int res = 1;queue<PII> q;q.push({x, y});vis[x][y] = 1;while (!q.empty()) { pair<int, int> t = q.front(); q.pop(); int x1 = t.first, y1 = t.second; for (int i = 0; i < 4; i++) { int x2 = x1 + dx[i], y2 = y1 + dy[i]; if (x2 < 1 || x2 > h || y2 < 1 || y2 > w) continue; if (vis[x2][y2] == 1 || vis[x2][y2] == 2) continue; if (!check(x2, y2)) { if (vis[x2][y2] == cnt) continue; vis[x2][y2] = cnt; res++; } else { res++; vis[x2][y2] = 1; q.push(make_pair(x2, y2)); } } } ans = max(ans, res);
}int main() {ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);cin >> h >> w;for (int i = 1; i <= h; i ++ ) {for (int j = 1; j <= w; j ++ ) {char c; cin >> c;if (c == '#') vis[i][j] = 2;}}for (int i = 1; i <= h; i ++ ) {for (int j = 1; j <= w; j ++ ) {if (vis[i][j] == 0 && check(i, j)) {bfs(i, j);cnt += 1;} }}cout << ans << '\n';return 0;
}
E:
分析题
题目描述
在坐标平面上有 N 个点 P1, P2, ..., PN ,其中点 Pi 的坐标为 (Xi, Yi) 。
两点 A 与 B 之间的距离 dist(A, B) 定义如下:
- 一只兔子最初位于点 A 。
- 位置为 (x, y) 的兔子可以跳跃到 (x+1, y+1) 、 (x+1, y-1) 、 (x-1, y+1) 或 (x-1, y-1) 。
- dist(A, B) 被定义为从 A 点到 B 点所需的最少跳跃次数。
- 如果经过任意次数的跳跃都无法从点 A 到达点 B ,则设为 dist(A, B) = 0 。
计算总和∑𝑖=1𝑁-1∑𝑗=𝑖+1𝑁dist(Pi, Pj) 。
输入
N
X1 Y1
X2 Y2
...
Xn Yn
输出
将∑𝑖=1𝑁-1∑𝑗=𝑖+1𝑁dist(Pi, Pj)的值打印为整数
样例输入1
3
0 0
1 3
5 6
样例输出1
3
样例输入2
5
0 5
1 7
2 9
3 8
4 6
样例输出2
11
思路:先看样例1,
P1 、 P2 和 P3 的坐标分别为 (0,0) 、 (1,3) 和 (5,6) 。
兔子可以通过 (0,0) -> (1,1) -> (0,2) -> (1,3) 在三次跳跃中从 P1 到达 P2 ,但无法在两次或更少的跳跃中到达,所以是 dist(P1, P2) = 3 。
兔子无法从 P1 到达 P3 ,也无法从 P2 到达 P3 ,因此是 dist(P1, P3) = dist(P2, P3) = 0 。
因此,答案是∑𝑖=12∑𝑗=𝑖+13dist(Pi, Pj)=dist(P1, P2)+dist(P1, P3)+dist(P2, P3)=3+0+0=3 。
我们可以看出,
兔子的移动是对角移动,不太方便进行操作。我们可以把坐标轴旋转45°,再放大两倍
所以,兔子可以从( x , y ) (x,y)(x,y)跳跃到( x + 2 , y ) , ( x , y + 2 ) , ( x , y − 2 ) (x+2,y), (x,y+2) , (x,y−2)(x+2,y),(x,y+2),(x,y−2)和( x − 2 , y ) (x−2,y)(x−2,y)
这道题是 曼哈顿距离 问题
出租车几何或曼哈顿距离(Manhattan Distance)是由十九世纪的赫尔曼·闵可夫斯基所创词汇 ,是种使用在几何度量空间的几何学用语,用以标明两个点在标准坐标系上的绝对轴距总和。
图1中红线代表曼哈顿距离,绿色代表欧氏距离,也就是直线距离,而蓝色和黄色代表等价的曼哈顿距离。曼哈顿距离——两点在南北方向上的距离加上在东西方向上的距离,即d(i,j)=|xi-xj|+|yi-yj|。对于一个具有正南正北、正东正西方向规则布局的城镇街道,从一点到达另一点的距离正是在南北方向上旅行的距离加上在东西方向上旅行的距离,因此,曼哈顿距离又称为出租车距离。曼哈顿距离不是距离不变量,当坐标轴变动时,点间的距离就会不同。曼哈顿距离示意图在早期的计算机图形学中,屏幕是由像素构成,是整数,点的坐标也一般是整数,原因是浮点运算很昂贵,很慢而且有误差,如果直接使用AB的欧氏距离(欧几里德距离:在二维和三维空间中的欧氏距离的就是两点之间的距离),则必须要进行浮点运算,如果使用AC和CB,则只要计算加减法即可,这就大大提高了运算速度,而且不管累计运算多少次,都不会有误差。
(图一)
最后最后一定要把结果除以2(我们放大了两倍)
#include<bits/stdc++.h>
using namespace std;
long long n,ans=0;
vector<long long>x[2][2],y[2][2];
int main(){cin>>n;for(int i=1;i<=n;i++){int x1,y1;cin>>x1>>y1;x[(x1+y1)%2][abs(x1-y1)%2].push_back(x1+y1);y[(x1+y1)%2][abs(x1-y1)%2].push_back(x1-y1);}for(int i=0;i<2;i++){for(int j=0;j<2;j++){int nx=x[i][j].size();int ny=y[i][j].size();if(nx==0) continue;sort(x[i][j].begin(),x[i][j].end());sort(y[i][j].begin(),y[i][j].end());long long prex=x[i][j][0],prey=y[i][j][0];for(int k=1;k<nx;k++){ans+=k*x[i][j][k]-prex;prex+=x[i][j][k];}for(int k=1;k<ny;k++){ans+=k*y[i][j][k]-prey;prey+=y[i][j][k];}}}cout<<ans/2;return 0;
}
本期题解到此结束,下期不见不散
相关文章:

Atcoder ABC351 A-E 题解
A: 打卡题 题目描述 一中队和二中队正在进行一场棒球比赛,一中队是第一棒。 目前,比赛已进行到第九局上半,第九局下半即将开始。 一中队在 第i局 (1 < i < 9) 上半场得到了 Ai 分,二中队在 第j局 (1 < j < 8) 下…...

【终极指南】从零开始征服机器学习:初学者的黄金路线图
踏入机器学习的世界,对许多初学者而言,无疑是一场既兴奋又略带忐忑的冒险。尤其对于那些非数学或计算机专业背景的同学,或是已经在职场打拼的朋友们,寻找一条适合自己的入门路径,显得尤为重要。鉴于此,本文…...

MongoDB自学笔记(三)
一、前文回顾 上一篇文章中我们学习了更新操作,以及讲解了部分的更新操作符,今天我们继续学习剩余的更新操作符。 二、更新操作符 1、$rename 语法:{ $rename: { < field1 >: < newName1 >, < field2 >: < newName2…...

编程中的智慧之设计模式三
深入探索设计模式:实际应用和优化策略 在前两篇文章中,我们详细探讨了创建型模式、结构型模式、行为模式和架构模式的基本概念及其在Java中的实现。在本文中,我们将进一步探讨如何在实际项目中应用和优化这些模式,尤其是如何在大…...

《YOLOv10改进实战专栏》专栏介绍 专栏目录
《YOLOv10改进实战专栏》介绍及目录 YOLOv10官方仓库地址 专栏地址:点击跳转 专栏导航如下: 🎀基础入门篇🎀 万字长文,小白新手怎么开始做YOLO实验,从零开始教!整体思路在这里,科研指…...

Python酷库之旅-第三方库Pandas(030)
目录 一、用法精讲 79、pandas.Series.dtype属性 79-1、语法 79-2、参数 79-3、功能 79-4、返回值 79-5、说明 79-6、用法 79-6-1、数据准备 79-6-2、代码示例 79-6-3、结果输出 80、pandas.Series.shape属性 80-1、语法 80-2、参数 80-3、功能 80-4、返回值 …...

神经网络中的激活函数举例,它们各自的特点,以及哪个激活函数效果更好,为什么
sigmoid: \(\sigma(x)1/(1e^{-x})\); 优:将数值压缩到 0 1,导数为 \(\sigma(x)(1-\sigma(x))\) 好算。劣:输出均值非0(0.5),梯度消失(Gradient vanishing)每次…...

【树莓派3B+】控制引脚输出高低电平
前言一、安装RPI.GPIO库二、编写简单的输出高低电平的程序三、运行程序总结 前言 首先检查一下自己的板子有没有带库 我这个是有的。 ok,正式进入步骤 一、安装RPI.GPIO库 如果还没有安装RPi.GPIO库,可以通过以下命令在树莓派上安装: p…...

【Redis7】高阶篇
1 Redis单线程 VS 多线程(入门篇) 1.1 面试题 redis到底是单线程还是多线程? IO多路复用听说过吗? redis为什么快? 1.2 Redis为什么选择单线程? 1.2.1 是什么 这种问法其实并不严谨,为啥这么说呢? Redis的版本…...

在学习使用LabVIEW的过程中,需要注意哪些问题?
在学习使用LabVIEW的过程中,需要注意以下问题: 1. 基础知识 图形化编程思维: LabVIEW采用图形化编程方式,与传统的文本编程语言有很大不同,需要适应这种新的编程思维方式。数据流概念: 理解LabVIEW的核心数…...

网络编程-TCP/IP
网络概述 网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。 每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务 网络体系结构…...

php在服务器上部署可视化运维工具详细列表
如果你的项目很小,可以用宝塔。但对于并发大的服务器管理,选择适合的工具非常重要。 目录 以下是一些免费且适合高并发管理的服务器管理工具推荐: 1Panel: Portainer: Webmin: Cockpit: …...

Linux中的文件夹作用
在Linux系统中,每个目录都有其特定的用途,下面我用大白话来解释一下各个主要目录的作用: / (根目录):这是Linux文件系统的起点,所有其他目录都是从这里延伸出去的。你可以把它想象成你家里的门厅,所有房间的…...

【C++】C++中的assign函数详解
目录 一.assign函数是什么 二.assign函数怎么用 一.assign函数是什么 在C中, assign 是 std::string 类的一个成员函数,用于给字符串对象赋值,可以替换字符串对象中的内容为另一个字符串或字符串的一部分。 std::string 的 assign 函…...

Hadoop3:MR程序的数据倾斜问题处理
一、数据倾斜 什么是数据倾斜? 学过Redis集群的都知道数据倾斜这个问题。 就是大量数据,分配不均匀的现象。 二、MR数据倾斜 1、怎么判断出现数据倾斜? 数据频率倾斜——某一个区域的数据量要远远大于其他区域。 数据大小倾斜——部分记…...

Mojo 编程语言简介
Mojo 是一种新兴的编程语言,旨在结合 Python 的易用性与 C 的高性能,特别是面向高性能计算、机器学习和系统编程等领域。Mojo 的设计目标是提供一种既具备高级语言灵活性,又能够高效运行的编程工具。 主要特性 高性能:通过高级编…...

【有效验证】解决SQLyog连接MYSQL的错误 1251 - Client does not support
目录 一、原因分析: 二、进入到mysql 三、查看当前加密方式 四、更改加密方式 五、查看是否成功 前言:使用一个开源软件使用sqlyog、navcat都报1251错误,网上都是提示升级客户端,还有一种就是修改mysql配置。本文就是修改配置…...

Keka for Mac v1.4.3 中文下载 解压/压缩工具
Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件,将其从左侧拖入右侧文件夹中,等待安装完毕2、应用程序显示软件图标,表示安装成功 三、运行测试1、打开软件2、文件访问权限修改3、访达扩展 安装完成!ÿ…...

springboot3.2 RedisCacheManager配置
1、启用并配置 添加 EnableCaching 注解 并配置 RedisCacheManager package config;import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.PropertyAccessor; import c…...

IP地址与MAC地址区别
MAC地址和IP地址是现代计算机网络中两个非常重要的概念,它们各自承担着不同的角色和功能。 MAC地址(Media Access Control Address) 一种物理地址,它是烧录在网卡或接口上的,具有全球唯一性,一般不能被改…...

Linux chmod 命令简介
在Linux中,chmod 命令用于改变文件或文件夹的访问权限。要改变一个文件夹及其内部所有文件和子文件夹的权限,您可以使用递归选项 -R。以下是一些常用的 chmod 命令示例: 给所有用户读、写和执行权限: chmod -R 777 /path/to/direc…...

【LeetCode】删除排序链表中的重复元素 II
目录 一、题目二、解法完整代码 一、题目 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 示例 1: 输入:head [1,2,3,3,4,4,5] 输出:[1,2,5] 示例 …...

Pandas使用 `iloc` 和 `loc` 常见用法汇总
文章目录 df.iloc 常见用法1. 获取特定行2. 获取特定列3. 获取特定的行和列4. 获取行切片5. 获取列切片6. 获取特定的行和列切片 df.loc 常见用法1. 获取特定行2. 获取特定列3. 获取特定的行和列4. 获取行切片5. 获取列切片6. 获取特定的行和列切片 示例代码 df.iloc 和 df.lo…...

【linux服务器】大语言模型实战教程:LLMS大模型快速部署到个人服务器
🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引言 说到大语言模型相信大家都不会陌生,大型语言模型(LLMs)是人工智能文本处理的主要类型,也现在最流行的人工智能…...

Windows 32 汇编笔记(二):使用 MASM
一、Win32 汇编源程序的结构 ; Hello.asm ; 使用 Win32 ASM 写的 Hello, world 程序 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>…...

手机和电脑通过TCP传输(一)
一.工具 手机端:网络调试精灵 电脑端:野火网络调试助手 在开始通信之前,千万要查看一下电脑的防火墙是否关闭,否则可能会无法通信 在开始通信之前,千万要查看一下电脑的防火墙是否关闭,否则可能会无法通信…...

Sentinel规则持久化Push模式两种实现方式
文章目录 sentinel持久化push推模式微服务端的实现具体实现源码分析读数据源写数据源的实现 微服务端解析读数据源流程 修改源码的实现官方demo修改源码实现配置类flowauthoritydegreadparamsystemgateway修改源码 测试补充 前置知识 pull模式 sentinel持久化push推模式 pull拉…...

Spring Boot 中使用 Resilience4j 实现弹性微服务的简单了解
1. 引言 在微服务架构中,服务的弹性是非常重要的。Resilience4j 是一个轻量级的容错库,专为函数式编程设计,提供了断路器、重试、舱壁、限流器和限时器等功能。 这里不做过多演示,只是查看一下官方案例并换成maven构建相关展示&…...

Hadoop3:MR程序压测实验
一、环境要求 内存:128G CPU:32C 磁盘:8T 注:一个虚拟机不超过150G磁盘尽量不要执行这段代码 二、案例 1、需求 使用Sort程序评测MapReduce 2、操作步骤 1、使用RandomWriter来产生随机数,每个节点运行10个Map任…...

初学者如何通过建立个人博客盈利
建立个人博客不仅能让你在网上表达自己,还能与他人建立联系。通过博客,可以创建自己的空间,分享想法和故事,并与有相似兴趣和经历的人交流。 本文将向你展示如何通过建立个人博客来实现盈利。你将学习如何选择博客主题、挑选合适…...