蓝桥杯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;
}
相关推荐
用户497863050731 小时前
(一)小红的数组操作
算法·编程语言
夜悊4 小时前
C++代码示例:进制数简单生成工具
c++
怕浪猫4 小时前
Electron 系列文章封面图
算法·架构·前端框架
郝学胜_神的一滴5 小时前
CMake 021: IF 条件判据详诠
c++·cmake
徐小夕6 小时前
JitWord 3.0 正式发布,高精度Word异构解析+复杂组件兼容,打造web端协同Word编辑器
前端·vue.js·算法
_wyt00119 小时前
洛谷 B3930 [GESP202312 五级] 烹饪问题 题解
c++·gesp
通信小呆呆21 小时前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
benben0441 天前
强化学习之DQN算法族(基于gymnasium开发)
算法
小小工匠1 天前
Redis - 事务机制:能实现 ACID 属性吗
数据结构·redis·性能优化·并发·持久化