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

题目列表

在这里插入图片描述

说明

好久没打蓝桥杯的比赛,回来试试水,就开了第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();
	 } 
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

测试工具使用技巧01-->jmeter链接mysql

前言 在做接口或者性能测试的时候&#xff0c;有时需要jmeter连接数据库做操作&#xff0c;可以看看如下实例。操作实例 在mysql数据库中有如下数据表 在jmeter导入jdbc驱动插件&#xff08;需要的留言找我拿&#xff09; 在jmeter测试计划元件最下面&#xff0c;导入jdbc.…

外泌体相关基因肝癌临床模型预测——2-3分纯生信文章复现——03.差异表达基因筛选(2)

内容如下&#xff1a; 1.外泌体和肝癌TCGA数据下载 2.数据格式整理 3.差异表达基因筛选 4.预后相关外泌体基因确定 5.拷贝数变异及突变图谱 6.外泌体基因功能注释 7.LASSO回归筛选外泌体预后模型 8.预后模型验证 9.预后模型鲁棒性分析 10.独立预后因素分析及与临床的…

React__ 二、React状态管理工具Redux的使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言redux状态管理安装redux创建文件 并使用传参action 总结 前言 redux状态管理插件的使用 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考…

VRRP与BFD在项目中的结合使用

学习目标&#xff1a; 1. VRRP双网关热备份怎样部署&#xff1f; 2. BFD是一种怎样的检测技术&#xff1f; 3. VRRP与BFD联动实现故障的快速切换&#xff1b; 虚拟一个192.168.1.1的网关&#xff1a; 虚拟路由器冗余协议&#xff1a;VRRP 人为调节角色选举 流量分担是可以的&…

【蓝桥杯】蓝桥杯算法复习(一)

&#x1f600;大家好&#xff0c;我是白晨&#xff0c;一个不是很能熬夜&#x1f62b;&#xff0c;但是也想日更的人✈。如果喜欢这篇文章&#xff0c;点个赞&#x1f44d;&#xff0c;关注一下&#x1f440;白晨吧&#xff01;你的支持就是我最大的动力&#xff01;&#x1f4…

图分割 Graph Partition 学习笔记1

文章目录 前言一、graph-partition是什么&#xff1f;二、具体分类三、graph-partition的意义参考链接 前言 最近在学习图论划分的方法&#xff0c;碰巧搜索到了这个算是对我而言全新的一个体系&#xff0c;在这里将逐步记载自己的学习资料和进度&#xff0c;希望和大家一起探讨…

深度学习相关概念及术语总结

目录 1.CNN2.RNN3.LSTM4.NLP5.CV6.正向传播7.反向传播8.sigmoid 函数9.ReLU函数10.假设函数11.损失函数12.代价函数 1.CNN CNN 是卷积神经网络&#xff08;Convolutional Neural Network&#xff09;的缩写。卷积神经网络是一种深度学习模型&#xff0c;专门用于处理具有网格状…

华容道问题求解_详细设计(四)之查找算法2_BFS

&#xff08;续上篇&#xff09; 利用BFS查找&#xff0c;会找到最短路径&#xff08;没有权重的图&#xff09;&#xff0c;这个道理比较简单&#xff0c;这是由于寻找路径的方法都是从起点或者接近起点的位置开始的。查找过程如果画出图来&#xff0c;类似于一圈圈的放大&…

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

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

数学建模理论与实践国防科大版

目录 1.数学建模概论 2.生活中的数学建模 2.1.行走步长问题 2.2.雨中行走问题 2.3.抽奖策略 2.4.《非诚勿扰》女生的“最优选择” 3.集体决策模型 3.1.简单多数规则 3.2.Borda数规则 3.3.群体决策模型公理和阿罗定理 1.数学建模概论 1.数学模型的概念 2.数学建模的概…

【理解指针(1)】

理解指针&#xff08;1&#xff09; 1什么是内存2指针变量和地址21 取地址操作符&#xff08;&&#xff09;22 指针变量23 解引用操作符&#xff08;*&#xff09;24 指针变量的大小 3指针变量的意义31指针的解引用32 指针加减整数33 void* 指针 4. const 修饰指针41 const…

和数软件:区块链技术的爆发与冲击

什么是区块链&#xff1f;它是如何发展而来的&#xff1f;应用在哪些领域&#xff1f;将会对我国的社会经济产生哪些重大影响&#xff1f; 什么是区块链 区块链作为一种底层技术&#xff0c;最早的实践是数字货币。根据最早的中本聪定义&#xff0c;区块链实质上是一种基于网…

202109 CSP认证 | 脉冲神经网络

3. 脉冲神经网络 好久之前第一次写的时候完全对第三题没感觉&#xff0c;提交上去得了个0 分… 这次自己再写了一遍&#xff0c;花的时间不多&#xff0c;写的时候感觉逻辑也不是特别难。最后是超时了&#xff0c;感觉第三题开始涉及到优化了&#xff0c;不仅仅是暴力模拟就可以…

纪年哥的文物挽救木牌

左&#xff08;江南制造局&#xff0c;曾国藩书天道酬勤&#xff0c;李鸿章少荃印&#xff0c;光绪三十四年制造&#xff09; 中&#xff08;汉阳兵工厂&#xff0c;民国二十六年制造&#xff0c;公元1937年七月七日&#xff0c;抗日战争全面爆发&#xff09; 右&#xff08;…

二 centos 7.9 磁盘挂载

上一步 一 windso10 笔记本刷linux cent os7.9系统-CSDN博客 笔记本有两个盘,系统装在128G的系统盘上,现在把另外一个盘挂载出来使用 lsblk 发现磁盘已经分好了,直接挂载就好了,参考文章:Centos7.9 挂载硬盘_centos7.9挂载硬盘-CSDN博客 永久挂载 lsblk -f分区格式化 mkfs…

upload-labs通关记录

文章目录 前言 1.pass-012.pass-023.pass-034.pass-045.pass-056.pass-067.pass-078.pass-089.pass-0910.pass-1011.pass-1112.pass-1213.pass-1314.pass-1415.pass-1516.pass-1617.pass-1718.pass-1819.pass-19 前言 本篇文章记录upload-labs中&#xff0c;所有的通过技巧和各…

首席翻译张璐老师,今年见不到了

她是我的偶像&#xff0c;张璐&#xff0c;连续多年在重量级会议上担任翻译。 2010年&#xff0c;张璐作为翻译出现&#xff0c;是五年来国家级媒体发布会首次起用女翻译。 2011年3月14日的媒体发布会。张璐再任会议翻译。 2012年的媒体发布会&#xff0c;张璐任翻译。 2013年&…

制定一份完美的测试计划,让您的产品质量更上一层楼!

大家好&#xff0c;我是彭于晏。今天学习测试计划如何书写。 虽然很多人日常工作中都知道测试计划是什么&#xff0c;但是写好测试计划&#xff0c;其实并不容易。今天就来一起学习下测试计划如何书写。 什么是测试计划&#xff1f; 测试计划是一份为软件产品所准备的详细文档…

帮管客CRM jiliyu接口存在SQL漏洞 附POC软件

免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。 1. 帮管客CRM简介 微信公众号搜索:南风漏洞复现文库…

yolo模型中神经节点Mul与Sigmoid 和 Conv、Concat、Add、Resize、Reshape、Transpose、Split

yolo模型中神经节点Mul与Sigmoid 和 Conv、Concat、Add、Resize、Reshape、Transpose、Split 在YOLO&#xff08;You Only Look Once&#xff09;模型中&#xff0c;具体作用和用途的解释&#xff1a;