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

力大砖飞,纯暴力搜索——蓝桥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;
}


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

相关文章:

  • 深入理解 Java 中的 CopyOnWrite 机制
  • 【Go每日一练】返回切片中的最大值和最小值
  • GIMP 2.10 开源图像编辑软件安装教程(Windows平台)
  • 2024 Qiniu 跨平台 Qt 高级开发全解析
  • RISC-V汇编学习(三)—— RV指令集
  • 网络编程-----服务器(多路复用IO 和 TCP并发模型)
  • 题解:洛谷 AT_dp_c Vacation
  • 网络HTTP
  • 加速科技Flex10K-L测试机:以硬核创新重塑显示驱动芯片测试新标杆!
  • C#UDP通讯(数据接收)
  • OpenGL ES ->多重纹理贴图
  • Nginx(基础安装+配置文件)
  • RabbitMQ之旅(1)
  • 感受数字经济春潮涌动——中电联数字经济专委会理事长刘九如一行调研北京国信华源科技公司
  • Java EE 进阶:Spring MVC(2)
  • 数据库索引的作用:提升数据检索效率的关键
  • react基本功(二)
  • 视频图像刷新到HTTP的原理
  • Visual-RFT视觉强化微调:用「试错学习」教会AI看图说话
  • React基础之自定义hook函数