蓝桥杯day14刷题日记

P8707 [蓝桥杯 2020 省 AB1] 走方格

思路:很典型的动态规划问题,对于偶数格特判,其他的正常遍历一遍,现在所处的格子的方案数等于左边的格子的方案数加上上面格子的方案数之和

cpp 复制代码
#include <iostream>
using namespace std;
int n,m;
int f[40][40];

int main()
{
	cin>>n>>m;
	f[0][1]=1;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			if(i%2==0&&j%2==0) continue;
			f[i][j]=f[i-1][j]+f[i][j-1];
		}
	}
	cout<<f[n][m];
	return 0;
}

P8627 [蓝桥杯 2015 省 A] 饮料换购

思路:先cum暂时记录本次可以保留下来的瓶盖,然后用n记录本次共有多少瓶饮料,最后更新surplus

cpp 复制代码
#include <iostream>
using namespace std;
int n,sum,surplus;
int cum;

int main()
{
	cin>>n;
	while(n)
	{
		sum+=n;
		cum=(n+surplus)%3;
		n=(n+surplus)/3;
		surplus=cum;
	}
	cout<<sum<<endl;
	return 0;
} 

P8700 [蓝桥杯 2019 国 B] 解谜游戏

思路:注意到内中外圈数量比是1:2:3,所以无论怎么旋转在内圈的一个位置都对应着中圈的两个位置以及外圈的三个位置,如下图标黑的模块,由于操作三的存在着六根塑料棒可以相互交换位置,所以只要六根塑料棒里面有三根绿色的,两根红色的,一根黄色的就符合题目的要求,因此遍历四次找出这四个集合看是否都符合上述条件,只要有一个不符合就直接输出NO

cpp 复制代码
#include <iostream>
#include <cstring>
using namespace std;
int t,flag;
string s1,s2,s3;
int q[1001];

int main()
{
	cin>>t;
	for(int i=0;i<t;i++)
	{
		cin>>s1>>s2>>s3; 
		for(int i=0;i<4;i++)
		{
			q[s3[i]]++,q[s2[i]]++,q[s2[i+4]]++,q[s1[i]]++,q[s1[i+4]]++,q[s1[i+8]]++;
			if(q['R']!=2||q['Y']!=1||q['G']!=3)
			{
				cout<<"NO"<<endl;
				flag=1;
				memset(q,0,sizeof q);
				break;
			}
			memset(q,0,sizeof q);
		}
		if(!flag) cout<<"YES"<<endl;
		flag=0;
	}
	return 0;
}
相关推荐
txinyu的博客几秒前
解析muduo源码之 SocketsOps.h & SocketsOps.cc
c++
dear_bi_MyOnly12 分钟前
【多线程——线程状态与安全】
java·开发语言·数据结构·后端·中间件·java-ee·intellij-idea
-Springer-14 分钟前
STM32 学习 —— 个人学习笔记2-2(新建工程)
笔记·stm32·学习
ctyshr24 分钟前
C++编译期数学计算
开发语言·c++·算法
tb_first25 分钟前
万字超详细苍穹外卖学习笔记4
java·spring boot·笔记·学习·spring·mybatis
日更嵌入式的打工仔26 分钟前
C内存布局
笔记
浪客灿心30 分钟前
list_stack_queue
数据结构·list
zh_xuan33 分钟前
最小跳跃次数
数据结构·算法
努力写代码的熊大42 分钟前
c++异常和智能指针
java·开发语言·c++
yumgpkpm43 分钟前
2026软件:白嫖,开源,外包,招标,晚进场(2025年下半年),数科,AI...中国的企业软件产业出路
大数据·人工智能·hadoop·算法·kafka·开源·cloudera