蓝桥杯 第 2 场 小白入门赛

目录

1.蓝桥小课堂-平方和

2.房顶漏水啦

3.质数王国

4.取余

5.数学尖子生

6.魔术师


比赛链接

1.蓝桥小课堂-平方和

简单签到直接按照题目处理即可注意开long long

void solve(){
	
	LL x; cin>>x;
	LL ans= x*(x+1)*(2*x+1)/6;
	cout<<ans<<endl;
}

2.房顶漏水啦

覆盖正方形的操作我们需要看的是最远的两端即可,所以只需要看长度和宽度的最大值来覆盖即可

void solve(){
	
	cin>>n>>m;
	LL mix=1e18,miy=1e18,Max=-1e18,May=-1e18;
	while(m--){
		LL x,y; cin>>x>>y;
		mix=min(x,mix);
		Max=max(Max,x);
		miy=min(miy,y);
		May=max(May,y);
	}
	
	LL ans = max((Max-mix+1),(May-miy+1));
	
	cout<<ans<<endl;
}

3.质数王国

我们可以先使用线性筛处理出所有的质数,接着对两个质数的中间的数进行左右变化处理最小值即可预处理o(n),然后直接求解即可

int cnt;
int primes[N];

void solve(){
	
	cin>>n;
	
	auto get = [&](){
		bitset<N> st;
		for(int i=2;i<N;i++){
			if(!st[i]) primes[cnt++]=i;
			for(int j=0;primes[j]<=N/i;j++){
				st[i*primes[j]]=true;
				if(i%primes[j]==0) break;
			}
		}
	};
	
	get();
	
	vector<int> dp(N);
	dp[0]=2,dp[1]=1;
	
	for(int i=1;i<cnt;i++){
		for(int x=primes[i-1]+1;x<primes[i];x++){
			dp[x]=min(x-primes[i-1],primes[i]-x);
		}
	}
	LL ans=0;
	while(n--){
		int x; cin>>x;
		ans+=dp[x];
	}
	cout<<ans<<endl;
}

4.取余

依照数据范围我们应该是要在o(n)的处理下得到答案,也就是要用到数学知识,我们可以从最开始的 S<=mod<=T这个区间去+b(1-B)这样范围的数,但是时间过高不可取,所以我们考虑使用区间的特性,我们可以转化为(<=T)-(<=S-1)就可以得到在中间这个区间的方案数量.

我们接着枚举b的大小

1.b<=u+1则无论a取多少都可以(a%b<=u)

2.b>u+1则A/i*(u+1)+min(A%i,u); 对于倍数的累加然后加上剩余的即可

void solve(){
	
	LL A,B,S,T; cin>>A>>B>>S>>T;
	
	auto get = [&](LL u){
		LL res=0;
		if(u<0) return res;
		for(int i=1;i<=B;i++){
			if(i<=u+1) res+=A;
			else res+=A/i*(u+1)+min(A%i,u);
		}
		return res;
	};
	
	cout<<get(T)-get(S-1)<<endl;
}

5.数学尖子生

依照题目意思如果我们要找到f(a)=b那么a一定是lcm\sum_{i}^{b-1}的倍数,基于这个点我们来处理问题,同时他不是lcm\sum_{i}^{b}的倍数的话,我们可以想到那就是做差就是剩下的满足要求的,也就是容斥原理\frac{sum}{lcm\sum_{i}^{b-1}}-\frac{sum}{lcm\sum_{i}^{b}}同时需要注意的是考虑数据范围很可能超过,对于超过的话就是0我们再进行特殊处理即可

LL lcm(LL a,LL b){
	return a/__gcd(a,b)*b;
}

void solve(){
	
	vector<LL>  lc(N);
	
	auto get = [&](){
		lc[0]=1;
		for(int i=1;i<N;i++){
			lc[i]=lcm(i,lc[i-1]);
			if(lc[i]>1e16){
				lc[i]=0; break;
			}
		}	
	};
	
	get();
	
	cin>>t;
	while(t--){
		LL n,m;
		cin>>n>>m;
		if(n==1||lc[n-1]==0){
			cout<<0<<endl;
			continue;
		}
		LL ans=m/lc[n-1]-(lc[n] ? m/lc[n] : 0);
		cout<<ans<<endl;
	}	
	
}

6.魔术师

我们可以发现他具有鲜明的区间修改和变化的操作但是他和我们平常的线段树不同他具有几个物品之间的切换之类的操作,对于这些变化,我们线段树变化的核心在于lazy如何修改我们可以在线段树中用懒标记来维护他们之间的关系,如果是翻倍的话也就是自己和自己的关系,关系如何传递,所以我们用二维数组来充当懒标记来处理,然后再用数组进行pushdown的操作来维护

int t,n,m;
int op,ql,qr,A,B;

int add[N*4][3][3],a[N*4][3],now[3][3];

void pushup(int u){
	for(int i=0;i<3;i++) a[u][i]=(a[u<<1][i]+a[u<<1|1][i])%mod; 
}

void lazy(int a[3][3],int b[3][3]){
	int c[3][3];
	for(int i=0;i<3;i++)
		for(int j=0;j<3;j++){
			c[i][j]=0;
			for(int k=0;k<3;k++){
				c[i][j]=(c[i][j]+(LL)a[i][k]*b[k][j]%mod)%mod;
			}
		}
	// 记录下来关系的传递
	for(int i=0;i<3;i++)
		for(int j=0;j<3;j++)
			a[i][j]=c[i][j];
}
void down(int a[3],int b[3][3]){
	// 这个区间直接修改
	int c[3];
	for(int j=0;j<3;j++){
		c[j]=0;
		for(int k=0;k<3;k++){
			c[j]=(c[j]+(LL)a[k]*b[k][j]%mod)%mod;
		}
	}
	for(int i=0;i<3;i++) a[i]=c[i];
}

void build(int u,int l,int r){
	for(int i=0;i<3;i++)
		for(int j=0;j<3;j++)
			add[u][i][j]=(i==j);// 表示lazy
	if(l==r){
		int x; cin>>x;
		x--;
		a[u][x]=1;
		return ;
	}	
	int mid=l+r>>1;
	build(u<<1,l,mid),build(u<<1|1,mid+1,r);
	pushup(u);
}

void modify(int u,int l,int r){
	if(ql<=l && r<=qr){// 找到需要修改的区间
		lazy(add[u],now);// 然后加入懒标记
		down(a[u],now);
		return ;
	}
	lazy(add[u<<1],add[u]);
	lazy(add[u<<1|1],add[u]);
	down(a[u<<1],add[u]);
	down(a[u<<1|1],add[u]);
	
	for(int i=0;i<3;i++)
		for(int j=0;j<3;j++)
			add[u][i][j]=(i==j);// 表示这个区间的lazy用完了恢复
			
	int mid=l+r>>1;
	if(ql<=mid) modify(u<<1,l,mid);
	if(qr>mid) modify(u<<1|1,mid+1,r);
	pushup(u);
}

void solve(){
   
    cin>>n>>m;
    build(1,1,n);
    while(m--){
     	cin>>ql>>qr>>op>>A; A--;
     	memset(now,0,sizeof now);// 表示传递的性质   1->1 自己到自己等于没有标记
     	// 表示是否具有标记的传递
     	for(int i=0;i<3;i++) now[i][i]=1;
     	if(op==3){
     		now[A][A]=2;// 自己到自己乘以2
     	}
     	else{
     		cin>>B; B--;
     		if(op==1) now[A][A]=now[B][B]=0,now[A][B]=now[B][A]=1;
     		else now[A][A]=0,now[A][B]=1;
     	}
     	modify(1,1,n);
     	for(int i=0;i<3;i++) cout<<a[1][i]<<' ';
     	cout<<endl;
    }
    return ;
}

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

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

相关文章

opencv-python计算视频光流

光流基本概念 光流表示的是相邻两帧图像中每个像素的运动速度和运动方向。具体&#xff1a;光流是空间运动物体在观察成像平面上的像素运动的瞬时速度&#xff0c;是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系&#xf…

仰暮计划|“那时候在生产队下面,集体干活,吃大锅饭,由队里分粮食,吃不饱饭是常事,队里分的粮食就那么点,想要吃饱真的太难了”

希望未来的中国越来越好&#xff0c;大家的生活也越来越好 老人是1955年在河南省洛阳市洛宁县的一个小山村里出生的&#xff0c;前半辈子为了生活&#xff0c;为了孩子而打拼&#xff0c;虽然经历了不少的苦难&#xff0c;但后半辈子也算是苦尽甘来&#xff0c;生活美满。现在就…

【MATLAB源码-第130期】基于matlab的BPSK-ZF迫零均衡,对比均衡前后的误码率曲线以及理论曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 信道均衡是通信系统中的一项关键技术&#xff0c;其主要目的是减少或消除由于信道特性导致的信号失真。在数字通信中&#xff0c;尤其是在无线通信系统中&#xff0c;由于多径传播等原因&#xff0c;接收到的信号会受到严重的…

浅析云性能监控的重要性及核心功能

随着企业日益依赖云计算服务&#xff0c;云性能监控变得至关重要。云性能监控是一种实时监测、分析和报告云基础设施及应用程序性能的方法。本文将深入探讨云性能监控的目的、重要性以及其核心功能&#xff0c;以帮助企业更好地理解和实施这一关键的运维实践。 一、云性能监控的…

[设计模式Java实现附plantuml源码~结构型]不兼容结构的协调——适配器模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

PCB设计10条重要布线原则(学习笔记)

文章目录 一、连线精简二、避免走直角线三、差分走线四、蛇形走线五、圆滑走线六、数字与模拟分开七、3W原则八、20H原则九、铜箔承载电流十、过孔承载电流 一、连线精简 尽量用最短的路径去布线 1、可以省资源 2、信号差损少 3、线能不拐弯就不拐弯 4、能不换层就不换层 二…

MongoDB安装以及卸载,通过Navicat 15 for MongoDB连接MongoDB

查询id&#xff1a; docker ps [rootlocalhost ~]# docker stop c7a8c4ac9346 c7a8c4ac9346 [rootlocalhost ~]# docker rm c7a8c4ac9346 c7a8c4ac9346 [rootlocalhost ~]# docker rmi mongo sudo docker pull mongo:4.4 sudo docker images 卸载旧的 sudo docker stop mong…

Django4.2(DRF)+Vue3 读写分离项目部署上线

文章目录 1 前端2 后端2.1 修改 settings.py 文件关于静态文件2.2 关于用户上传的文件图片 3 Nginx4 镜像制作4.1 nginx4.3 Django镜像4.3.1 构建 5 docker-compose 文件内容 1 前端 进入前端项目的根目录&#xff0c;运行如下命令进行构建 npm run build构建完成后&#xff…

Apple Vision Pro 评测:这款顶尖头显仅是对未来的初步探索

原文&#xff1a;Apple Vision Pro Review: The Best Headset Yet Is Just a Glimpse of the Future 作者&#xff1a;Joanna Stern 戴上 Apple Vision Pro 混合现实头显整整近 24 小时后&#xff0c;有几件事让我颇感意外&#xff1a; 我居然没感到恶心。我竟然高效完成了大…

云纱网签约百望云,联手打造数字化产业闭环

近日&#xff0c;百望云签约广东云纱数字科技有限公司&#xff0c;共建数字化发票管理系统&#xff0c;赋能产业链上下游供应商的协同交易与运营&#xff0c;助力企业实现数字化四流合一交易&#xff0c;打造数字化产业闭环。 云纱网是广东云纱数字科技有限公司依托于深厚的产业…

利用牛顿方法求解非线性方程(MatLab)

一、算法原理 1. 牛顿方法的算法原理 牛顿方法&#xff08;Newton’s Method&#xff09;&#xff0c;也称为牛顿-拉弗森方法&#xff0c;是一种用于数值求解非线性方程的迭代方法。其基本思想是通过不断迭代来逼近方程的根&#xff0c;具体原理如下&#xff1a; 输入&#…

STM32——DMA

STM32——DMA 1.DMA介绍 什么是DMA&#xff1f; DMA(Direct Memory Access&#xff0c;直接存储器访问) 提供在外设与内存、存储器和存储器、外设与外设之间的高速数据传输使用。它允许不同速度的硬件装置来沟通&#xff0c;而不需要依赖于CPU&#xff0c;在这个时间中&…

移动端设计规范 - 文字使用规范

这是一篇关于移动端产品界面设计时&#xff0c;文字大小的使用规范&#xff0c;前端人员如果能了解一点的话&#xff0c;在实际开发中和设计沟通时&#xff0c;节省沟通成本&#xff0c;也能提高设计落地开发时的还原度。 关于 在做移动端产品设计时&#xff0c;有时候使用文字…

fpmarkets实例讲解止损,控制风险如此简单

止损和止盈是交易者在交易时都需要了解的两个基本设置&#xff0c;在上篇文章fpmarkets澳福和各位投资者分享 了止盈如何工作&#xff0c;今天我们继续实例讲解止损&#xff0c;在交易中控制不必要的风险。 止损单是基本交易订单之一。如果市场走向与预期相反&#xff0c;它会限…

[机器学习]LFM梯度下降算法

一.LFM梯度下降算法 2.代码实现 # 0. 引入依赖 import numpy as np import pandas as pd# 1. 数据准备 # 评分矩阵R R np.array([[4,0,2,0,1],[0,2,3,0,0],[1,0,2,4,0],[5,0,0,3,1],[0,0,1,5,1],[0,3,2,4,1],]) # 二维数组小技巧&#xff1a;取行数R.shape[0]和len(R)&#x…

【SPIE独立出版|长春理工大学主办】2024年第四届数字信号与计算机通信国际学术会议(DSCC 2024)

DSCC 2024已通过SPIE出版社审核&#xff0c;ISSN号已确定&#xff1a;ISSN: 0277-786X&#xff0c;往届均已见刊EI检索&#xff01; 2024年第四届数字信号与计算机通信国际学术会议&#xff08;DSCC 2024&#xff09; 2024 4th International Conference on Digital Signal and…

Windows Server 2025 Azure Arc 介绍

Azure Arc 是一个扩展 Azure 平台的桥梁&#xff0c;可帮助你构建可灵活地跨数据中心、边缘和多云环境运行的应用程序和服务。使用一致的开发、操作和安全模型来开发云原生应用程序。 Azure Arc 可在新的和现有的硬件、虚拟化和 Kubernetes 平台、物联网设备和集成系统上运行。…

Flutter 开发3:创建第一个Flutter应用

Step 1: 安装Flutter 1.1 下载Flutter SDK 首先&#xff0c;你需要访问Flutter官方网站下载最新的Flutter SDK。选择适合你操作系统的安装包。 $ cd ~/development $ unzip ~/Downloads/flutter_macos_2.2.3-stable.zip1.2 更新环境变量 接下来&#xff0c;你需要将Flutter…

【项目管理】整合管理

一、管理基础 1、项目整合管理由项目经理负责&#xff0c;项目经理负责整合所有其他知识领域的成果&#xff0c;并掌握项目总体情况。项目整合管理的责任不能被授权或转移&#xff0c;项目经理必须对整个项目承担最终责任。整合是项目经理的一项关键技能。执行项目整合时项目经…

西门子WINCC触摸屏的Audit功能:追溯生产数据与用户操作行为

1为什么要用Audit功能&#xff1f; 在许多工业领域&#xff0c;生产数据的可追溯性及其文档记录变得愈加重要&#xff0c;如医药行业、食品饮料以及相关的机械工程行业。与书面文档相比&#xff0c;以电子形式存储生产数据具有许多优点&#xff0c;如采集和记录数据更方便&…