当前位置: 首页 > news >正文

蓝桥杯真题——洛谷Day13 找规律(修建灌木)、字符串(乘法表)、队列(球票)

目录

找规律

P8781 [蓝桥杯 2022 省 B] 修剪灌木

 字符串

P8723 [蓝桥杯 2020 省 AB3] 乘法表

队列

P8641 [蓝桥杯 2016 国 C] 赢球票


找规律

P8781 [蓝桥杯 2022 省 B] 修剪灌木

思路:对某个特定的点来说有向前和向后的情况,即有向前再返回到该位置和从该位置向后再返回到该位置的两种情况,枚举这两种情况取最大值

详细思路:

#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)//枚举每一颗树
	{
		//对左右边的路径进行比较,由于会往返注意要乘2 
		cout<<max(i-1,n-i)*2<<endl; 
	 } 
	return 0;
}

 字符串

P8723 [蓝桥杯 2020 省 AB3] 乘法表


进制的转换:短除法(熟知的方法就是整数十进制转换位2进制)

注意!!乘法表输出的每一个数都要是在n进制下的数,不是只有答案是n进制!!

#include<iostream>
#include<cstring>
#include<algorithm>

using namespace std;

int n;

string check(int x,int y)//将十进制数转换为n进制 
{
	int t=x*y;//十进制数 
	string s;
	while(t)//短除法进行进制转换 
	{
		int r=t%n;
		if(r>=10)//十六进制以上的情况
			s+=r-10+'A';
		else
			s+=r+'0'; 
		t/=n;
	}
	//最后需要逆序取结果,但是此时的结果是正序
	reverse(s.begin(),s.end());
	return s;
		 
}
int main()
{
	cin>>n;
	for(int i=1;i<n;i++)
	{
		for(int j=1;j<=i;j++)
		{
			cout<<check(i,1)<<'*'<<check(j,1)<<'='<<check(i,j)<<' ';
		}
		cout<<endl;
	}
	return 0;
}

队列

P8641 [蓝桥杯 2016 国 C] 赢球票

思路:纸牌的顺序给定,能从所有的位置开始,求能拿的最大数字和
这道题要使用队列,具有先进先出的性质,即
题目中的纸牌是一个圆圈,遍历时要进行循环遍历,且具有先进先出的形式,即可判断需要使用队列

#include<iostream>
#include<algorithm>
#include<queue>

using namespace std;

const int N=100+10;
int n;
int a[N];

int check(int x)//开始拿取的位置 
{
	queue<int> q;//建立一个队列,存放循环数据
	//因为纸牌围成一个圈,根据题目规则,当拿取位置是x时
	//一定是先遍历x之后的数,再遍历x之前的数 
	for(int i=x;i<=n;i++)//将x位置之后的数据入队,使其存放在队前 
	 	q.push(a[i]);
	for(int i=1;i<x;i++)//将x之前的数入队 ,使其存放在队后
		q.push(a[i]);
		
	int sum=0;//卡牌数之和 
	int tmp=1;//记录从1开始的数的数 
	while(q.size())
	{
		int t=q.front();q.pop();//先将队头数据取出进行判断
		if(t==tmp)//数到的数与卡牌数相同
		{
			sum+=t;
			tmp=1;//拿取后需从头开始 
		 } 
		else//数的数与卡牌数不同 
		{
			q.push(t);//不同,将该数如队尾,遍历下一个数 
			tmp++;//数下一个数 
		}
		if(tmp>n)//已经数完了,即这种拿法结束
			break ;
	 } 
	 return sum;
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)	
		cin>>a[i];
	
	int ans=0;
	for(int i=1;i<=n;i++)//对每个位置进行遍历
		ans=max(check(i),ans); 
	cout<<ans<<endl;
	return 0;
}

相关文章:

  • 如何制作一个自己的网站?
  • Excel 小黑第12套
  • 【华为OD-E卷 - 求符合条件元组个数 100分(python、java、c++、js、c)】
  • Redis高级结构-布隆过滤器
  • 【量化科普】Alpha,阿尔法收益
  • laravel 对 数据库 json 字段的查询方式汇总
  • 在 Offset Explorer 中配置多节点 Kafka 集群的详细指南
  • gralloc usage flags
  • 关于QMetaObject::invokeMethod的作用和用法
  • Rust 生命周期
  • 【深度学习与大模型基础】第7章-特征分解与奇异值分解
  • python鸢尾花
  • 基于java的ssm+JSP+MYSQL的九宫格日志网站(含LW+PPT+源码+系统演示视频+安装说明)
  • 每天一道面试题-两数之和
  • SpatialLM尝鲜版
  • JavaEE的知识记录
  • Python第六章03:列表的常用操作
  • 【AI知识】常见的优化器及其原理:梯度下降、动量梯度下降、AdaGrad、RMSProp、Adam、AdamW
  • 线程池学习
  • 如何在Linux中实现scp命令自动输入密码
  • 重庆大学通报本科生发14篇SCI论文:涉事学生及其父亲被处理
  • 面对非专业人士,科学家该如何提供建议
  • 会计江湖|年报披露关注什么:独董给出的“信号”
  • 国常会:研究深化国家级经济技术开发区改革创新有关举措等
  • 优秀“博主”在上海杨浦购房最高补贴200万元,有何条件?
  • “一嗨租车”陷“五年后扣费”疑云,用户:违章处理莫名消失