蓝桥杯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;
}
相关推荐
Keep Running *33 分钟前
Spring Cloud Alibaba_学习笔记
笔记·学习
无敌昊哥战神1 小时前
深入理解 C 语言:巧妙利用“0地址”手写 offsetof 宏与内存对齐机制
c语言·数据结构·算法
小白菜又菜1 小时前
Leetcode 2075. Decode the Slanted Ciphertext
算法·leetcode·职场和发展
我不是懒洋洋1 小时前
AI的影响6
笔记
Proxy_ZZ01 小时前
用Matlab绘制BER曲线对比SPA与Min-Sum性能
人工智能·算法·机器学习
黎阳之光1 小时前
黎阳之光:以视频孪生领跑全球,赋能数字孪生水利智能监测新征程
大数据·人工智能·算法·安全·数字孪生
小李子呢02112 小时前
前端八股6---v-model双向绑定
前端·javascript·算法
XH华2 小时前
数据结构第九章:树的学习(下)
数据结构·学习
史迪仔01122 小时前
[QML] QML IMage图像处理
开发语言·前端·javascript·c++·qt
2301_822703203 小时前
Flutter 框架跨平台鸿蒙开发 - 创意声音合成器应用
算法·flutter·华为·harmonyos·鸿蒙