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

力大砖飞,纯暴力搜索——蓝桥p2110(写着玩的)

 


#include<bits/stdc++.h>

const int N=1000000;

using namespace std;

bool mp[2][N];

int cnt=0;
int n;

void dfs(int row,int col){
  cnt=cnt%1000000007;
	if(col==n && row==2){
		cnt++;
		return ;
	}
	if(row>=2){ //下一列 
		dfs(0,col+1);
		return;
	}
	
	if(mp[row][col]==1){ //下一行 
		dfs(row+1,col);
		return ;
	} 
	
	//I型木块两种情况,平放和竖放
	//1.竖放 
	if(row==0 && mp[row][col]==0 && mp[row+1][col]==0){
		mp[row][col]=1,mp[row+1][col]=1;
		dfs(row+2,col); //直接下一列 
		mp[row][col]=0,mp[row+1][col]=0;
	
	}
	//2.横放
	if(col+1<=n &&mp[row][col]==0 && mp[row][col+1]==0){
		mp[row][col]=1 , mp[row][col+1]=1;
		dfs(row+1,col);  
		mp[row][col]=0 , mp[row][col+1]=0;
	} 
	//L型木块有四种可能
	//第一种
	if(row==0 && col+1<=n && mp[row][col]==0 && mp[row+1][col]==0 && mp[row+1][col+1]==0){
		mp[row][col]=1 , mp[row+1][col]=1 , mp[row+1][col+1]=1;
		dfs(row,col+1);
		mp[row][col]=0 , mp[row+1][col]=0 , mp[row+1][col+1]=0;
	} 
	//第二种
	if(row==1 && col+1<=n && mp[row][col]==0 && mp[row][col+1]==0 && mp[row-1][col+1]==0) {
		mp[row][col]=1 , mp[row][col+1]=1 , mp[row-1][col+1]=1;
		dfs(row+1,col); //直接下一列 
		mp[row][col]=0 , mp[row][col+1]=0 , mp[row-1][col+1]=0;
	}
	//第三种
	if(row==0 && col+1<=n && mp[row][col]==0 && mp[row+1][col]==0 && mp[row][col+1]==0){
		mp[row][col]=1 , mp[row+1][col]=1 , mp[row][col+1]=1;
		dfs(row+1,col+1);
		mp[row][col]=0 , mp[row+1][col]=0 , mp[row][col+1]=0;
	} 
	//第四种
	if(row==0 && col+1<=n && mp[row][col]==0 && mp[row][col+1]==0 && mp[row+1][col+1]==0){
		mp[row][col]=1 , mp[row][col+1]=1 , mp[row+1][col+1]=1;
		dfs(row+1,col);
		mp[row][col]=0 , mp[row][col+1]=0 , mp[row+1][col+1]=0;
	}
}

int main(){
	cin>>n;
	//搜索方式从上到下从左到右 
	dfs(0,1);
	cout<<cnt%1000000007<<endl;
	return 0;
}

相关文章:

  • vue3 遇到babel问题(exports is not defined) 解决方案
  • 【水调歌头·排序篇】--体验快排与归并的奥妙
  • Mac服务器上创建Docker并安装宝塔环境
  • 2025最新软件测试面试八股文(含答案+文档)
  • Java 中数据脱敏的实现
  • 前端快速搭建Node服务(解决跨域问题)
  • MySQL进阶-关联查询优化
  • The Wedding Juicer POJ - 2227
  • linux下进程间通信方式(匿名管道)
  • 直装永久授权,最新专业版集成VB7
  • 接口-菜品分页查询
  • 实战 - 使用 AutoAWQ 进行量化
  • 【量化科普】Beta,贝塔系数
  • 【数据仓库与数据挖掘基础】第二章 数据仓库原理
  • Linux和gcc/g++常用命令总结
  • Pytorch实现之S2GAN实现Sentinel-2光谱波段的空间分辨率
  • 【微信小程序】uniapp开发微信小程序
  • “Predict”和“Foresee”的区别
  • 算法005——有效三角形个数
  • 基于cross-attention算法关联文本和图像、图像和动作
  • 嘉兴高端网站建设/广州白云区新闻头条最新消息今天
  • 建材营销型的网站/推广关键词排名查询
  • 网络公司给别人做网站的cms是买的授权么/南昌seo排名扣费
  • wordpress文章显示url地址/仓山区seo引擎优化软件
  • 网站平台建设制度/网络宣传方案
  • 深圳专业网站建设/seo怎么优化排名