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

蓝桥杯真题——洛谷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;
}


http://www.kler.cn/a/592735.html

相关文章:

  • SqlServer Sql学习随笔
  • Apache Tomcat漏洞公开发布仅30小时后即遭利用
  • SQL Server数据库简介及应用
  • RNN及其变体
  • Deepseek r1 本地部署
  • 一键批量DWG_DXF文件互转——CAD c#插件实现(dwg转dxf dxf转dwg)
  • 物联网为什么用MQTT不用 HTTP 或 UDP?
  • 关于QMetaObject::invokeMethod的作用和用法
  • 2025火狐插件被禁用解决方案 could not be verified for use in Firefox and has been disabled
  • php 高性能,高并发,有哪些框架,扩展,推荐一下,或者技术的实现有哪些
  • Weblogic未授权远程命令执行漏洞复现
  • 【内付相关主题会议进行参考】智能技术应用前沿:算法、感知与控制的学术支点与产业衔接
  • 配置固定ip绕过ip限制
  • 动平衡仿真程序设计
  • JVM 的类加载机制原理
  • Flask应用调试模式下外网访问的技巧
  • 类和对象C++
  • keepalived应用
  • 2025年【安全员-C证】新版试题及安全员-C证理论考试
  • HTTP请求方法详解:GET、POST、PUT在微信小程序中的应用