CSP201409T5拼图

2024-04-07 21:36
文章标签 拼图 csp201409t5

本文主要是介绍CSP201409T5拼图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意:给出一个 n × m n×m n×m的方格图,现在要用如下L型的占3个的积木拼到这个图中,总共有多少种拼法使图满。

#include<bits/stdc++.h>
using namespace std;
long long n,m,k=1,Now;
int Mod=1000000007;
struct Matrix
{long long a[129][129];Matrix(){for(long long i=0;i<k;i++)a[i][i]=1;}Matrix(int x){memset(a,0,sizeof(a));}Matrix operator*(Matrix& B)//矩阵乘法 {Matrix t(0);for(int i=0;i<k;i++)for(int j=0;j<k;j++)for(int l=0;l<k;l++)t.a[i][j]=(t.a[i][j]+a[i][l]*B.a[l][j])%Mod;return t;}
}; 	
Matrix quickmul(Matrix ans,long long p)//矩阵快速幂 
{Matrix t;	while(p){if(p&1)t=t*ans;ans=ans*ans;p>>=1;}return t;
}
Matrix A(0);
void dfs(int now,int next)
{//cout<<now<<" "<<next<<endl;if(now+1==k){A.a[Now][next]++;return ;}for(int l=0;l<m;l++){if((now>>l)&1)continue;//当前列的位置上有拼图则跳过int temp=1<<l;int now1,next1;//递归,四种拼图 now1=temp|(temp<<1);// 1 1next1=temp;         // 0 1if((l+1<m)&&!(now&now1||next&next1))dfs(now1|now,next1|next);now1=temp|(temp<<1);// 1 1 next1=temp<<1;      // 1 0if((l+1<m)&&!(now&now1||next&next1))dfs(now1|now,next1|next);now1=temp;		    // 0 1 next1=temp|temp<<1; // 1 1if((l+1<m)&&!(now&now1||next&next1))dfs(now1|now,next1|next);now1=temp;	        // 1 0 next1=temp|temp>>1; // 1 1if((l)&&!(now&now1||next&next1))dfs(now1|now,next1|next);return ;}
}
int main()
{cin>>n>>m;for(long long i=0;i<m;i++)k<<=1;for(Now=0;Now<k;Now++)dfs(Now,0);Matrix ANS=quickmul(A,n);	/*for(int i=0;i<k;i++){for(int j=0;j<k;j++)cout<<ANS.a[i][j]<<" ";cout<<endl;	}*/cout<<ANS.a[0][0]<<endl;return 0;
}

这篇关于CSP201409T5拼图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/883732

相关文章

怎样将所有照片拼接在一起?教你5种拼图技巧

拼图的乐趣与创意,在每一块碎片的精准契合中绽放,直至那幅独一无二的画面跃然眼前,让每一位参与者都沉醉于那份亲手构筑的喜悦之中。 那么,问题来了——在线拼图用什么软件好呢?接下来的篇章将带你一探究竟,解锁拼图软件带来的无限可能~ №1:拼图工具箱 ——创意与便捷并存的选择 这是一款专为拼图设计的应用程序,它提供了丰富的拼图模板和编辑功能,界面简洁直观,即便是拼图新手也能轻松上手。 ◎拼

图片拼图怎么做?4个方法打造具有高级感的拼图作品

被阿勒泰的日落治愈了,旅行中的每一刻都值得珍藏。 这次的阿勒泰之行,我不仅带回了一堆美好的回忆,还有手机里满满的精彩瞬间。从壮丽的山川到静谧的湖泊,从晨曦初现到夜幕降临,每一帧都是大自然的馈赠。但是,如何把这些珍贵的照片拼接在一起,拼出那种杂志封面般的高级感呢? 别担心,今天就来和大家分享图片拼图怎么拼高级感,保证让你的作品既美观又大气! 方法一:拼图工具箱 ✔ 它的优势在哪里呢?

unity3d拼图__附带资源

要达到吸附效果则需要每个拼图上挂载碰撞体 达到整张图片的替换效果需要选中所有拼图部件把材质球拖上去 、 制作材料球 脚本挂载到随便一个空物体上 using System.Collections;using System.Collections.Generic;using UnityEngine;public class PinTu : MonoBehaviour{/

java拼图小游戏项目

创建一个Java拼图小游戏是一个有趣且富有教育意义的项目,可以锻炼你的编程技能。以下是开发一个基本拼图游戏可能需要考虑的几个步骤: 项目规划: 确定游戏的基本规则和玩法。设计游戏的界面和用户交互。 环境搭建: 确保你的开发环境中安装了Java Development Kit (JDK)。选择一个合适的IDE(如IntelliJ IDEA、Eclipse等)。 界面设计: 使用Swing或J

基于opencv的相机之拼图功能实现(十)

简介   本篇是对实现图片处理功能:【拼图】实现的记录。 实现原理   点击进入该功能之后,首先会初始化一个背景图片。背景中对应放图片的拼图位置被初始化为空白区域,点击该空白区域,会进入图库中进行图片选择。选好图片之后,将回到本功能的界面;同时被点击的空白区域,将被刚刚选择的图片填充。具体可以参考资料:opencv实现拼图功能 http://blog.csdn.net/u01163

登录/注册- 滑动拼图验证码(IOS/Swift)

本章介绍如何使用ios开发出滑动拼图验证码,分别OC代码和swift代码调用 1.导入项目model文件OC代码(下载完整Demo) 2.放入你需要显示的图片 一:OC调用 #import "ViewController.h"#import "CodeView.h"@interface ViewController () <CodeViewDelegate>@property (n

Halcon 双相机标定与拼图(二)

一、概述 这种标定有两种模式,有一个标定板和多个标定板两种 一个标定板 两个相机的重叠区域比较大,那么我们可以把标定板放到那个重叠区域来统一坐标系,如下 这种是只需要一个标定板,这种是推荐的方式 。 多个标定板 由于要求的视野没有重叠区域,或者重叠的区域太小了,那么我们可以采用这种方式  这个方法就是对上面绿色的部分,两个标定板的关系很重要,会直接影响到最后的图像结果 二、

Halcon 双相机标定与拼图(一)

一、概述 最近有一个多相机标定的项目,大概是4个相机来标定,同一坐标系,然后拼接图,之前双相机标定的时候也大概看看,所以今天就找了那个halcon 案例多学一下,后面我打算做一个对位贴合的东西,类似于VM的那种,最后我想把整个流程封装起来。 思路: 1、做联合标定,每个相机的内参标定,但是外参第二个相机是基于第一相机的 2、获得标定板(只有一个标定板)相机的第一个姿态,作为第一个相机的决定

as3用鼠标拖动图形拼图——灰常简单的教程

话说这种效果在课件里面经常用到,鼠标拖动事件,一个运用很频繁的事件,一起学习学习吧 首先SWF贡献给大家看看效果 感觉咋样,原理其实还蛮简单的,做做试试吧 下面来看看源码吧 package { import flash.display.MovieClip; import flash.display.Sprite; import flas

【教学类-58-05】黑白三角拼图05(2-10宫格,每个宫格随机1张-6张,带空格纸,1页3张黑白3张白卡)

背景需求: 【教学类-58-04】黑白三角拼图04(2-10宫格,每个宫格随机1张-6张,带空格纸,1页6张黑白,1张6张白卡)-CSDN博客文章浏览阅读582次,点赞16次,收藏3次。【教学类-58-04】黑白三角拼图04(2-10宫格,每个宫格随机1张-6张,带空格纸,1页6张黑白,1张6张白卡)https://blog.csdn.net/reasonsummer/article/d