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

news2025/6/16 12:05:24

题目列表

在这里插入图片描述

说明

好久没打蓝桥杯的比赛,回来试试水,就开了第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.coloradmin.cn/o/1503911.html

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

相关文章

Learn OpenGL 04 纹理

纹理环绕方式 纹理坐标的范围通常是从(0, 0)到(1, 1)&#xff0c;那如果我们把纹理坐标设置在范围之外会发生什么&#xff1f;OpenGL默认的行为是重复这个纹理图像&#xff08;我们基本上忽略浮点纹理坐标的整数部分&#xff09;&#xff0c;但OpenGL提供了更多的选择&#xf…

java中的字符串比较(题目作示例)

错误的代码 import java.util.Scanner; public class one {public static void main(String[] args) {Scanner scnew Scanner(System.in);String b"47568";int i0;for ( i 0; i <3; i){String asc.next();if(ab){System.out.println("密码正确&#xff0c;登…

鸿蒙开发(二)-项目结构

鸿蒙开发(二)-项目结构 上篇文章我们讲了如何配置鸿蒙开发的基础环境&#xff0c;以及创建了第一个鸿蒙程序。 这篇我们讲述了鸿蒙应用的项目目录结构。 如图所示&#xff1a;我们切换项目project可以看到。 另一种则是Ohos模式: AppScope->app.json5 应用的全局配置 {&q…

300分钟吃透分布式缓存-23讲:Redis是如何淘汰key的?

淘汰原理 首先我们来学习 Redis 的淘汰原理。 系统线上运行中&#xff0c;内存总是昂贵且有限的&#xff0c;在数据总量远大于 Redis 可用的内存总量时&#xff0c;为了最大限度的提升访问性能&#xff0c;Redis 中只能存放最新最热的有效数据。 当 key 过期后&#xff0c;或…

【vue.js】文档解读【day 2】 | 响应式基础

如果阅读有疑问的话&#xff0c;欢迎评论或私信&#xff01;&#xff01; 本人会很热心的阐述自己的想法&#xff01;谢谢&#xff01;&#xff01;&#xff01; 文章目录 响应式基础声明响应式状态(属性)响应式代理 vs 原始值声明方法深层响应性DOM 更新时机有状态方法 响应式…

html--彩虹爱心

文章目录 js内容cssreset.min.cssstyle.css html内容 js内容 const colors ["#e03776","#8f3e98","#4687bf","#3bab6f","#f9c25e","#f47274"]; const SVG_NS http://www.w3.org/2000/svg; const SVG_XLINK &q…

VUE3 使用axios网络请求

1.新建工程 参考&#xff0c;VUE3 环境搭建&#xff1a;https://blog.csdn.net/LQ_001/article/details/136293795&#xff0c;运行命令 vue create vue-demo 2.引入axios 不管何种引用&#xff0c;都要在工程中安装 axios 包。安装命令&#xff1a;npm install --save axio…

基于springboot实现数据资产管理系统 项目【项目源码+论文说明】

基于springboot实现数据资产管理系统演示 摘要 固定资产管理系统主要是完成对系统用户管理、资产信息管理、资产变更管理、资产用途管理、资产类别管理和资产增减管理。因为利用本系统管理员可以直接录入信息&#xff0c;修改信息&#xff0c;删除信息&#xff0c;并且若在录入…

智能革新:2024年AI辅助研发的挑战、机遇与未来展望

引言 在进入2024年的门槛时&#xff0c;我们站在了一个科技飞速发展的新纪元&#xff0c;其中&#xff0c;人工智能&#xff08;AI&#xff09;的持续进步和应用扩展无疑是推动这一变革的强大动力。AI辅助研发&#xff0c;作为将人工智能技术应用于科研和产品开发过程的一种模…

C++内存管理篇

文章目录 1. C/C内存分布2. C中的内存管理方式3. operator new和operator delete函数4. new和delete的实现原理5. 定位new表达式(placement-new) 1. C/C内存分布 C语言中&#xff0c;为了方便管理内存空间&#xff0c;将内存分成了不同的区域&#xff0c;每个区域管理不同的数据…

未来已来!AI大模型引领科技革命

未来已来&#xff01;AI大模型正以惊人的速度引领着科技革命。随着科技的发展&#xff0c;人工智能在各个领域展现出了非凡的能力和潜力&#xff0c;大模型更是成为了科技领域的明星。从自然语言处理到图像识别&#xff0c;从智能推荐到语音识别&#xff0c;大模型的应用正在改…

计算机找不到api-ms-win-core-path-l1-1-0的5种解决方法

在计算机使用过程中&#xff0c;我们可能会遇到各种问题&#xff0c;其中之一就是找不到某些系统文件。最近&#xff0c;许多用户反映他们在使用电脑时遇到了“找不到api-ms-win-core-path-l1-1-0文件”的问题。这个问题通常出现在Windows操作系统中&#xff0c;可能会影响到一…

《vtk9 book》 官方web版 第3章 - 计算机图形基础 (3 / 6)

3.8 演员几何 我们已经看到了光照属性如何控制演员的外观&#xff0c;以及相机如何结合变换矩阵将演员投影到图像平面上。剩下的是定义演员的几何形状&#xff0c;以及如何将其定位在世界坐标系中。 建模 计算机图形学研究中的一个重要主题是建模或表示物体的几何形状。…

HarmonyOS ArkTS工程目录结构(Stage模型)

1. ArkTS工程目录结构&#xff08;Stage模型&#xff09; 官方文档&#xff08;https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/start-with-ets-stage-0000001477980905-V2&#xff09; 1.1. AppScope AppScope > app.json5&#xff1a;应用的全局配…

高级语言讲义2010计专(仅高级语言部分)

1.编写一程序&#xff0c;对输入的正整数&#xff0c;求他的约数和。 如&#xff1a;18的约数和为1236939 #include <stdio.h>int getsum(int n){int i,sum0;for(i1;i<n;i)if(n%i0)sumi;return sum; } int main(){int sum getsum(18);printf("%d",sum); …

【UE5】游戏框架GamePlay

项目资源文末百度网盘自取 游戏框架 游戏 由 游戏模式(GameMode) 和 游戏状态(GameState) 所组成 加入游戏的 人类玩家 与 玩家控制器(PlayerController) 相关联 玩家控制器允许玩家在游戏中拥有 HUD&#xff0c;这样他们就能在关卡中拥有物理代表 玩家控制器还向玩家提供 …

XSS靶场-DOM型初级关卡

一、环境 XSS靶场 二、闯关 1、第一关 先看源码 使用DOM型&#xff0c;获取h2标签&#xff0c;使用innerHTML将内容插入到h2中 我们直接插入<script>标签试一下 明显插入到h2标签中了&#xff0c;为什么不显示呢&#xff1f;看一下官方文档 尽管插入进去了&#xff0…

腾讯云轻量服务器流量用完了怎么办?停机吗?

腾讯云轻量服务器流量用完了怎么办&#xff1f;超额流量另外支付流量费&#xff0c;流量价格为0.8元/GB&#xff0c;会自动扣你的腾讯云余额&#xff0c;如果你的腾讯云账号余额不足&#xff0c;那么你的轻量应用服务器会面临停机&#xff0c;停机后外网无法访问&#xff0c;继…

Spring Boot单元测试与热部署简析

1 Spring Boot的简介 Spring Boot是一个用于构建独立的、生产级别的Spring应用程序的框架。它简化了Spring应用程序的开发过程&#xff0c;提供了自动配置和默认配置&#xff0c;使得开发者只需专注于业务逻辑的实现&#xff0c;而不用去关注繁琐的配置问题。 Spring …

【MATLAB】MATLAB转C/C++语言并部署到VS2019

首先将你要转换的代码保存 function [outputArg1, outputArg2] test(inputArg1,inputArg2)print(inputArg1inputArg2)outputArg1double(inputArg1inputArg2);outputArg2double(inputArg1*inputArg2); end在APP中找到MATLAB Coder 选择保存的文件 C/C中需要给变量定义类型&…