「蓝桥·算法双周赛」第七场分级赛——小白入门赛

题目列表

在这里插入图片描述

说明

好久没打蓝桥杯的比赛,回来试试水,就开了第1、2、3一共三个题,第4题可惜了。

在这里插入图片描述

1.thanks,mom【算法赛】

在这里插入图片描述

思路:

没什么好说的,但是当时比赛刚开始服务器有问题,基本提交的全WA了。
#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
using ull = unsigned long long;
const int N = 1e5+5,mod = 1e9+7,INF = 0x3f3f3f3f;
void solve(){cout << "thanks,mom";
}
signed main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int T = 1;
//	cin >> T;while(T--){solve();} return 0;
}

2.霓虹【算法赛】

在这里插入图片描述

说明

这个题,没啥好特别的想法,我想的是把'0'到'9'的每一笔画是否出现置成0和1(有该笔画为1,否则为0),然后遍历两个字符串比较。

参考代码

#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
using ll = long long;
using ull = unsigned long long;
const int N = 1e5+5,mod = 1e9+7,INF = 0x3f3f3f3f;
//上横第二维下标为0,左上竖1,右上竖2,中横3,左下竖4,右下竖5,下横6 
int cnt[10][7]={{1,1,1,0,1,1,1},{0,0,1,0,0,1,0},{1,0,1,1,1,0,1},
{1,0,1,1,0,1,1},{0,1,1,1,0,1,0},{1,1,0,1,0,1,1},{1,1,0,1,1,1,1},
{1,0,1,0,0,1,0},{1,1,1,1,1,1,1},{1,1,1,1,0,1,1}};
void solve(){string s1,s2;cin >> s1 >> s2;int ans = 0;for(int i = 0;i<s1.size();i++){char c1=s1[i],c2=s2[i];if(c1==c2) continue;else{for(int j = 0;j<7;j++){if(cnt[c1-'0'][j]!=cnt[c2-'0'][j]) ans++;}}}cout << ans << endl;
}
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int T = 1;
//	cin >> T;while(T--){solve();} return 0;
}

3. 奇偶排序【算法赛】

在这里插入图片描述

思路

没啥好说的,存进数组后sort()一下,自己写一个cmp()比较函数即可

参考题解

#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
using ll = long long;
using ull = unsigned long long;
const int N = 1e3+5,mod = 1e9+7,INF = 0x3f3f3f3f;
int a[N];
int n;
bool cmp(int a1,int a2){if(a1%2==1&&a2%2==1) return a1<a2;else if(a1%2==0&&a2%2==0) return a1<a2;else if(a1%2==0&&a2%2==1) return false;else if(a1%2==1&&a2%2==0) return true;
}
void solve(){cin >> n;for(int i = 0;i<n;i++) cin >> a[i];sort(a,a+n,cmp);for(int i = 0;i<n;i++) cout << a[i] << " \n"[i==n-1];
}
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int T = 1;
//	cin >> T;while(T--){solve();} return 0;
}

4. 可结合的元素对【算法赛】

在这里插入图片描述

说明

最简单的方法是写两个循环暴力跑,我也是这么做的,但是当时比赛环境可能有问题,一直过不去,比赛完了重新提交就AC了;用map或者onordered_map也可以跑出来,不过当时比赛的时候没想到(其中用unordered_map速度最快,map速度最慢)

参考题解1

#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N = 1e5+5;
int n;
int a[N];
int lowbit(int x){return x&(-x);}
signed main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin >> n;for(int i = 1;i<=n;i++) cin >> a[i];int ans = 0;for(int i = 1;i<=n;i++){for(int j = i+1;j<=n;j++){if(lowbit(a[i]+a[j])==a[i]+a[j]) ans++;}}cout << ans;return 0;
}

参考题解2

#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
using ll = long long;
using ull = unsigned long long;
const int N = 1e5+5,mod = 1e9+7,INF = 0x3f3f3f3f;
map<ll,ll> mp;
void solve(){int n;cin >> n;ll ans = 0;for(int i = 1;i<=n;i++){ll x;cin >> x;for(int j = 0;j<32;j++){ll y = 1LL<<j;ans+=mp[y-x];}mp[x]++;}cout << ans;
}
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int T = 1;
//    cin >> T;while(T--){solve();} return 0;
}

参考题解3

#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
using ll = long long;
using ull = unsigned long long;
const int N = 1e5+5,mod = 1e9+7,INF = 0x3f3f3f3f;
unordered_map<ll,ll> mp;
void solve(){int n;cin >> n;ll ans = 0;for(int i = 1;i<=n;i++){ll x;cin >> x;for(int j = 0;j<32;j++){ll y = 1LL<<j;ans+=mp[y-x];}mp[x]++;}cout << ans;
}
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int T = 1;
//    cin >> T;while(T--){solve();} return 0;
}

5. 兽之泪【算法赛】

在这里插入图片描述

思路

用堆实现每次取到的都是最小的,但是前k-1个要考虑是否是第一次打败的问题,以及考虑是否要打第k个怪物的问题

参考题解

#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
using PII = pair<int,int>;
const int N = 2e5+5;
int k,n;
PII a[N];
priority_queue<PII,vector<PII>,greater<PII> > heap1;
signed main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin >> k >> n;for(int i = 1;i<=k;i++){int x,y;cin >> x >> y;a[i]={x,y};}for(int i = 1;i<=k-1;i++){PII t1 = {a[i].first,i};heap1.push(t1);}int ans1 = 0;for(int i = 1;i<=n;i++){auto t=heap1.top();ans1+=t.first;if(t.second!=-1){heap1.pop();PII t1 = {a[t.second].second,-1LL};heap1.push(t1);}}int ans2 = 0;priority_queue<PII,vector<PII>,greater<PII> > heap2;for(int i = 1;i<=k;i++){ans2+=a[i].first;heap2.push({a[i].second,-1LL});n--;}for(int i = 1;i<=n;i++){auto t1 = heap2.top();ans2+=t1.first;}cout << min(ans1,ans2);return 0;
}

6. 矩阵X【算法赛】

在这里插入图片描述

说明

这个题用二维前缀和加滑动窗口来写最便捷

参考题解(从大佬那copy来的)

在这里插入图片描述

#include<bits/stdc++.h> 
using namespace std;
#define int long long
#define ll long long
#define pp pair<int,int>
const int N=1e6+10;
const int M=(1ll<<31)-1;
int n,m,x,y,k,z,o;
const int mo=1e9+7;
struct w{int x,y;
}a[N];
void sovel()
{cin>>n>>m>>k>>o;vector<vector<int> > v(n+1,vector<int>(m+1));vector<vector<int> > sum(n+1,vector<int>(m+1));vector<vector<int> > dpa(n+1,vector<int>(m+1));vector<vector<int> > dpb(n+1,vector<int>(m+1));auto getsum=[&](int x,int y){if(x<k||y<o){return 0ll;}return sum[x][y]-sum[x-k][y]-sum[x][y-o]+sum[x-k][y-o];	};for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>v[i][j];sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+v[i][j];}}for(int j=1;j<=m;j++){int l=0,r=-1;for(int i=1;i<=n;i++){x=v[i][j];while(l<=r&&a[r].x<=x){r--;}r++;a[r]={x,i};while(i-a[l].y+1>k){l++;}dpa[i][j]=a[l].x;}}for(int i=k;i<=n;i++){int l=0,r=-1;for(int j=1;j<=m;j++){x=dpa[i][j];while(l<=r&&a[r].x<=x){r--;}r++;a[r]={x,j};while(j-a[l].y+1>o){l++;}dpb[i][j]=a[l].x;}}int manx=0;for(int j=1;j<=m;j++){int l=0,r=-1;for(int i=1;i<=n;i++){x=-v[i][j];while(l<=r&&a[r].x<=x){r--;}r++;a[r]={x,i};while(i-a[l].y+1>k){l++;}dpa[i][j]=a[l].x;}}for(int i=k;i<=n;i++){int l=0,r=-1;for(int j=1;j<=m;j++){x=dpa[i][j];while(l<=r&&a[r].x<=x){r--;}r++;a[r]={x,j};while(j-a[l].y+1>o){l++;}manx=max(manx,(dpb[i][j]+a[l].x)*getsum(i,j));}}cout<<manx;
}
signed main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int t=1;while(t--){sovel();} 
}

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

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

相关文章

线程有几种状态,状态之间的流转是怎样的?

Java中线程的状态分为6种&#xff1a; 1.初始(NEW)&#xff1a;新创建了一个线程对象&#xff0c;但还没有调用start()方法。 2.运行(RUNNABLE)&#xff1a;Java线程中将就绪&#xff08;READY&#xff09;和运行中&#xff08;RUNNING&#xff09;两种状态笼统的称为“运行”…

数据库基础——mysql知识体系(掌握mysql,看完这篇文章就够了)

1.关系型数据库 关系型数据库是一种基于关系模型的数据库系统&#xff0c;将数据组织成表格的形式&#xff0c;表格由行和列组成&#xff0c;每行代表一个记录&#xff0c;每列代表一个属性。它使用结构化查询语言SQL进行数据管理和操作。 特点&#xff1a;1.数据的组织&…

【Azure 架构师学习笔记】- Azure Private Endpoint

本文属于【Azure 架构师学习笔记】系列。 前言 公有云的其中一个特点是默认允许公网访问&#xff0c; 这就对企业环境带来风险&#xff0c;也是很多年前企业对公有云抵触的其中一个原因&#xff0c;现在这类问题已经很少&#xff0c;因为有了很多技术来确保云上的资源被安全地…

HTML5:七天学会基础动画网页10

继续介绍3D转换: 3D转换:rotate3d 方法与说明 rrotateX(angle)otate3d(x,y,z,angle[角度]) 3D转换&#xff0c;正常取值0/1&#xff0c;0代表当前轴线不进行旋转&#xff0c;1反之&#xff0c;例:rotate3d(1,1,1,30deg)&#xff0c;代表三个轴线都要旋转30度 rotate3d(0…

小程序添加悬浮在线客服源码

部分代码片段&#xff1a; wxml: <button plaintrueopen-type"share" class"ymym"> <image modeaspectFill src../../static/fx.png classymimage></image> </button> 源码获取方式&#xff1a;搜一搜 万能工具箱合集 然后点击 资…

论文目录3:大模型时代(2023+)

1 instruction tuning & in context learning 论文名称来源主要内容Finetuned Language Models Are Zero-Shot Learners2021 机器学习笔记&#xff1a;李宏毅ChatGPT Finetune VS Prompt_UQI-LIUWJ的博客-CSDN博客 早期做instruction tuning的work MetaICL: Learning to …

HTML 学习笔记(九)颜色值和长度单位

一、颜色 1.通过RGB值来设置颜色 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>table</title&…

如何设计自动化测试框架

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 关于测试框架的好处&#xff0c;比如快速回归提高测试效率&…

⎣模型⎤Claude3——给奥特曼一点点压力!

微信公众号|人工智能技术派 作 者|hws Claude系列模型是由美国创业公司Anthropic基于transformer架构研发&#xff0c;该公司是一群在2021年OpenAI离职员工(包括前首席科学家Ilya Sutskever和Dario Amodei)创建的。Anthropic先前已发布Claude1和Claude2&#xff0c;效果相当不错…

XPath表达式学习

XPath表达式学习是写UI自动化关键的一步 学习渠道而言w3school肯定是最好的教程 获取控件XPath路径的工具 名称平台介绍uiautomatorviewerAndorid只能直接生成xpah,需要自己拼凑Appium InspectorAndorid iOS只能在mac上用app-insecptorAndorid iOSmacaca的生态工具 常见用法 …

【数据分享】2000-2022年全国1km分辨率的逐日PM10栅格数据

空气质量数据是在我们日常研究中经常使用的数据&#xff01;之前我们给大家分享了2000-2022年全国范围逐日的PM2.5栅格数据和2013-2022年全国范围逐日SO2栅格数据&#xff08;可查看之前的文章获悉详情&#xff09;。 本次我们给大家带来的是2000-2022年全国范围的逐日的PM10栅…

【论文阅读】关于智能合约的漏洞检测

两篇论文&#xff0c;都是关于智能合约漏洞检测的综述文章 [1]崔展齐,杨慧文,陈翔等.智能合约安全漏洞检测研究进展[J/OL].软件学报:1-33[2024-03-05].https://doi.org/10.13328/j.cnki.jos.007046. [2]王丹,黄松,王兴亚.以太坊智能合约测试研究综述[J].信息技术与信息化,2023(…

算法设计与分析(超详解!) 第一节 算法概述

1.算法的定义 算法的非形式化定义&#xff1a;算法是规则的有限集合&#xff0c;是为解决特定问题而规定的一系列操作。 可以理解为&#xff1a;算法&#xff08;algorithm&#xff09;是指在解决问题时&#xff0c;按照某种机械的步骤一定可以得到问题的结果&#xff08;有的…

【黑马程序员】STL实战--演讲比赛管理系统

文章目录 演讲比赛管理系统需求说明比赛规则程序功能 创建管理类功能描述创建演讲比赛管理类 菜单功能添加菜单成员函数声明菜单成员函数实现菜单功能测试 退出功能添加退出功能声明退出成员函数实现退出功能测试 演讲比赛功能功能分析创建选手类比赛成员属性添加初始化属性创建…

iOS小技能:设置app语言(跟随系统和特定语言)

文章目录 引言I 读取本地化字符串的方式1.1 设置当前语言工具类(封装读取本地化字符串)1.2 获取系统语言环境1.3 跟随系统1.4 根据特定bundle读取本地化字符串II 设置app语言2.1 设置语言2.2 语言切换界面2.3 重新加载所有界面以更新语言2.4 资源文件III 案例:登录界面切换中…

数据分析-Pandas最简单的方法画矩阵散点图

数据分析-Pandas直接画矩阵散点图 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据表&…

有点炫酷有点diao的免费wordpress模板主题

这是一款经典的免费wordpress主题&#xff0c;被广泛应用于多个行业的网站。 https://www.wpniu.com/themes/189.html

在Ubuntu 20.04中设置开机自启动脚本

这里写目录标题 1. 在Ubuntu 20.04中设置开机自启动脚本2. 取消上面的命令 1. 在Ubuntu 20.04中设置开机自启动脚本 在Ubuntu 20.04中设置开机自启动脚本&#xff0c;您可以使用systemd服务来实现。下面是如何将您的脚本设置为开机自启动的步骤&#xff1a; 创建systemd服务文…

vulhub中Weblogic < 10.3.6 ‘wls-wsat‘ XMLDecoder 反序列化漏洞(CVE-2017-10271)复现

Weblogic的WLS Security组件对外提供webservice服务&#xff0c;其中使用了XMLDecoder来解析用户传入的XML数据&#xff0c;在解析的过程中出现反序列化漏洞&#xff0c;导致可执行任意命令。 访问http://your-ip:7001/即可看到一个404页面&#xff0c;说明weblogic已成功启动 …

Kubernetes 安全秘籍:5 个你必须知道的知识点

Kubernetes 安全和身份验证是确保集群和应用安全的关键。今天将深入探讨 Service Account、身份验证和RBAC的关键概念和实践&#xff0c;帮助您构建安全可靠的应用。今天本文将着重于安全相关的内容&#xff0c;并提供更详细的示例和配置说明&#xff0c;帮助兄弟们更深入地理解…