【ACM】—蓝桥杯大一暑期集训Day1

news2024/10/5 13:41:52

🚀欢迎来到本文🚀
🍉个人简介:陈童学哦,目前专攻C/C++、Python、Java等方向,一个正在慢慢前行的普通人。
🏀系列专栏:陈童学的日记
💡其他专栏:C++STL、蓝桥杯,喜欢OJ的小伙伴可以看一手
🎁希望各位→点赞👍 + 收藏⭐️ + 留言📝 ​
⛱️学习应使你快乐!望与诸君共勉!🏄‍♂️

在这里插入图片描述

Day1集训

  • 前言
  • A - 查找
  • B - 地毯
  • C - 数楼梯
  • D - 宇宙总统
  • E - 高低位交换
  • F - Worms
  • 总结

前言

因参加了我校的ACM暑期集训为之后的xcpc等赛事做准备,所以就有了此文哈哈。本文主要复盘做题的过程以及一些感悟,便于复习巩固。辣么现在废话也不多说啦,直接往下看吧哈哈。

A - 查找

来源:洛谷P2249 【深基13.例1】查找
在这里插入图片描述解题思路
本题用暴力搜索是过不了的,因为序列是有序的,所以在对每次需要进行查询的数用二分查找即可。

AC代码

#include<iostream>
using namespace std;
const int N=1000005;
int n,m,q,a[N];
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
		scanf("%d",&a[i]);
	for(int i=1;i<=m;i++){
		int l=1,r=n;
		scanf("%d",&q);
		while(l<r){
			int mid=(l+r)/2;
			if(a[mid]>=q)
				r=mid;
			else
				l=mid+1;
		}
		if(a[l]==q)
			printf("%d ",l);
		else
			printf("-1 ");
	}
}

B - 地毯

来源:洛谷P3397 地毯
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解题思路
这题数据不是很强,暴力也能过,所以我就暴力啦…

AC代码

#include<iostream>
using namespace std;
int n,m,x1,x2,y1,y2;
int s[1005][1005]={0};
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;i++){
		scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
		for(int j=x1;j<=x2;j++)
			for(int k=y1;k<=y2;k++)
				s[j][k]++;
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++)
			printf("%d ",s[i][j]);
		cout<<endl;
	} 
}

C - 数楼梯

来源:洛谷P1255 数楼梯
在这里插入图片描述
解题思路
本题需要使用到高精度以及数学知识斐波那契(想必大家都知道哈,默认知道哈哈)。因为每次只能走一步或者两步,那么当前所在阶梯的方案数=上一阶梯方案数+上上一阶梯方案数,即s[i]=s[i−1]+s[i−2].。但是因为本题数据较大,所以直接一维数组的话不够用,这样用的是二维来储存。
AC代码

#include<bits/stdc++.h>
using namespace std;
int n,s[5005][5005],length;
void find(int x){
	for(int i=1;i<=length;i++)
		s[x][i]=s[x-1][i]+s[x-2][i];
	for(int i=1;i<=length;i++){
		if(s[x][i]>=10){
			s[x][i+1]+=s[x][i]/10;
			s[x][i]%=10;
			if(s[x][length+1]>0)
				length++;
		}
	}
}
int main(){
	cin>>n;
	length=1;
	s[1][1]=1;
	s[2][1]=2;
	for(int i=3;i<=n;i++)
		find(i);
	//注意逆序输出哈 
	for(int i=length;i>=1;i--)
		cout<<s[n][i];
} 

D - 宇宙总统

来源:洛谷P1781 宇宙总统
在这里插入图片描述
解题思路
本题也是道高精度的题,用字符串就好了

AC代码

#include<iostream>
using namespace std;
int n,win;
string s1,s2="";
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>s1;
		int t1=s1.size();
		int t2=s2.size();
		if(t1>t2||(t1==t2&&s1>s2)){
			s2=s1;
			win=i;
		}
	}
	cout<<win<<endl<<s2;
}

E - 高低位交换

来源:洛谷P1100 高低位交换
在这里插入图片描述
解题思路
本题主要运用到的位运算,直接左移16位和右移16位就OK
AC代码

#include<iostream>
using namespace std;
unsigned long long n;//无符号类型
int main(){
	scanf("%u",&n);
	printf("%u",(n>>16)+(n<<16));
}

F - Worms

来源:CodeForces-474B. Worms
在这里插入图片描述
在这里插入图片描述
翻译:
在这里插入图片描述
解题思路
本题用前缀和以及二分查找即可求解
AC代码:

#include<iostream>
using namespace std;
const int N=100005;
int n,a[N],b[N];
int m,label;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	for(int i=2;i<=n;i++)//前缀和
		a[i]+=a[i-1];
	cin>>m;
	for(int i=1;i<=m;i++){
		cin>>label;
		int l=1,r=n,mid=(l+r)/2;//二分查找
		while(l<r){
			if(label<=a[mid]){
				r=mid-1;
			}else{
				l=mid;
				cout<<l<<endl;
			}		
		}
	}
}

总结

Day1的题主要考察的是一些基础的算法。
算法:二分查找、前缀和、数学、位运算、高精度、暴力搜索
感悟:这些算法算是比较基础的,只需多加练习就能熟练掌握
总结:算法的运用还是比较灵活的,能极大的减小时间复杂度

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

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

相关文章

怎样优雅地增删查改(五):按组织架构查询

文章目录 原理实现应用测试 之前我们实现了Employee&#xff0c;Alarm管理模块以及通用查询应用层。 Employee的集合查询业务&#xff0c;是通过重写CreateFilteredQueryAsync方法&#xff0c;来实现按组织架构查询的过滤条件。 我们将这段逻辑代码提取到通用查询应用层中&…

【前后缀GCD】ABC125 C

C - GCD on Blackboard (atcoder.jp) 题意&#xff1a; 思路&#xff1a; 这道题&#xff0c;多看看样例大概就出来了 由样例可知&#xff0c;换成的数可以是其他N-1个数的gcd&#xff0c;这样对答案的贡献也没有影响 所以直接去枚举换的是什么数就行 因此怎么去快速求其他…

对于 Spring MVC 了解? SpringMVC 的执行流程?SpringMVC 的核心是什么?请求的流程是怎么处理的?控制反转怎么实现的?

对于 Spring MVC 了解? 之前 Model1 和 Model2 这两个没有 Spring MVC 的时代。 Model1 时代 : 整个 Web 应用几乎全部用 JSP 页面组成&#xff0c;只用少量的 JavaBean 来处理数据库连接、访问等操作。 JSP 既是控制层又是表现层&#xff0c;存在很多问题&#xff0c;如①将…

逆天!安卓正式超越 Windows 成世界第一大操作系统

导读Android是一种基于Linux的自由及开放源代码的操作系统&#xff0c;主要使用于移动设备&#xff0c;如智能手机和平板电脑&#xff0c;由Google公司和开放手机联盟领导及开发。 10 亿的用户数意味着 Windows 依然是第一大桌面操作系统&#xff0c;不过如果算上智能手机平台…

抖音seo源码矩阵系统开发规则开发者分享(一)

抖音SEO矩阵系统源码开发&#xff0c;需要遵循一下步骤 1. 确定需求和功能&#xff1a;明确系统的主要目标和需要实现的功能&#xff0c;包括关键词研究、短视频制作、外链建设、数据分析、账号设置优化等方面。 2. 设计系统架构&#xff1a;根据需求和功能确定系统的架构&am…

微信公众号错误代码:40125

微信公众号错误代码&#xff1a;40125 报错代码 错误代码&#xff1a;40125, 错误信息&#xff1a;invalid appsecret rid: 64b0ba1d-74e53e36-717abb43&#xff0c; 微信原始报文&#xff1a;{"errcode":40125,"errmsg":"invalid appsecret rid: 6…

金融数据库的战场,太平洋保险和OceanBase打了场胜仗

点击关注 文丨刘雨琦 “数据库的国产替代&#xff0c;必须经过严格的考虑&#xff0c;保证不会出错&#xff0c;所以大多数企业的领导层选择按兵不动或者简单扩容。因为不换就不会错&#xff0c;选了很久如果选错&#xff0c;还可能会出现重大事故。” 某银行数据库技术人员…

UG\NX二次开发 获取对象的边界包容盒 UF_MODL_ask_bounding_box_aligned

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: 获取对象的边界包容盒 UF_MODL_ask_bounding_box_aligned,可以得到指定坐标系下的盒子,速度快,结果不精确 效果: 代码: //UF_MODL_ask_bounding_box_aligned #include "me.hpp" #i…

【ABAP】数据类型(六)「域的概要」

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较…

Java使用EsayExcel导出模板,涉及多个sheet

需求&#xff1a;利用excel模板导出&#xff0c;有两个sheet&#xff0c;其中一个sheet涉及固定字段导出和多数 据(List)导出 1、模板 sheet1&#xff1a; sheet2&#xff1a; 2、主要代码 public static void outputExcelForTunnelMonitor(HttpServletResponse r…

EBU5476 Microprocessor System Design 知识点总结_8 I2C

I2C 连接多个模块的传输方案&#xff1a;I2C&#xff0c;使用两根总线。 两根总线分别是时钟总线 SCL 和数据总线 SDA。 通信过程 现在我们串一遍I2C上一个模块&#xff08;master&#xff09;要给另一个模块&#xff08;slave&#xff09;发消息的过程。 MCU 使用一定的方法…

玩转代码|Linux中Thread Local Storage(线程局部存储)

目录 pthread的内存结构 __thread pthread specific API __thread和pthread specific API对比 存储区域/寻址方式不同 性能/效率不同 能存储的数据不同 支持的数据个数不同 在C/C程序中&#xff0c;全局变量默认是所有线程共享的&#xff0c;开发者需要处理多线程竞争问…

如何在短时间内提高亚马逊关键词排名?

搜索购买可以在短时间内提高亚马逊关键词排名&#xff0c;操作方法是通过独立买家账号搜索关键词&#xff0c;找到商品&#xff0c;点击购买&#xff0c;提高关键词的相关性和保留率&#xff0c;让关键词排名自然提高&#xff0c;从而达到上首页的目的。不过要操作这一个方法还…

储能协调控制器装置|储能协调控制设备|储能系统功率控制器|源网荷储互动终端这种装置是什么?应用实施方案如何?

什么是储能协调控制器装置|储能协调控制设备|储能系统功率控制器|源网荷储互动终端及其应用实施方案 一&#xff1a;新型电力系统背景 以新能源为主体的新型电力系统是以新能源为供给主体、以确保能源电力安全为基本前提、以满足经济社会发展电力需求为首要目标&#xff0c;以…

Spring - 更简单的存取 Bean 对象(使用注解)

目录 一、类注解是什么 二、使用类注解 存取 Bean 对象 1. 准备工作 2. 所以使用五大类注解的规则&#xff1a; 三、五大类注解之间的关系 1. 首先可以查看 类注解的源码如下图&#xff1a; 2. 为什么需要五个类注解&#xff1f; 3. 为什么使用类注解的方式不能使用原类…

挖矿记录+解决方案:利用GitLab组件对服务器进行挖矿导致CPU占用200%

文章目录 什么是云服务器挖矿?事件记录事件分析产生影响解决方案后期预防什么是云服务器挖矿? 云服务器挖矿是指利用云服务器从事赚取比特币的活动。比特币是一种虚拟数字货币,挖矿是将一段时间内比特币系统中发生的交易进行确认,并记录在区块链上形成新区块的过程。 用于…

青岛大学_王卓老师【数据结构与算法】Week05_06_栈的顺序表示_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c; 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础…

【数据结构】之红黑树

红黑树 红黑树的概念红黑树的性质红黑树的插入操作&#xff08;核心&#xff09;情况一&#xff1a;uncle存在且为红情况二&#xff1a;uncle不存在/存在且为黑&#xff08;在同一侧&#xff09;情况三&#xff1a;uncle不存在/存在且为黑&#xff08;在两侧&#xff09;总结 红…

三、学习分类 - 基于图像大小进行分类

天下一半剑仙是我友 谁家娘子不娇羞 我以醇酒洗我剑 谁人说我不风流 1 设置问题 根据图片的尺寸&#xff0c;把图片分为纵向图像和横向图像。这种把图像分成两种类别的问题&#xff0c;就是二分类问题。 纵向图片示例&#xff1a; 横向图片示例&#xff1a; 这样就有了两个…

【Go语言开发】简单了解一下搜索引擎并用go写一个demo

写在前面 这篇文章我们一起来了解一下搜索引擎的原理&#xff0c;以及用go写一个小demo来体验一下搜索引擎。 简介 搜索引擎一般简化为三个步骤 爬虫&#xff1a;爬取数据源&#xff0c;用做搜索数据支持。索引&#xff1a;根据爬虫爬取到的数据进行索引的建立。排序&#xf…