当前位置: 首页 > 编程日记 > 正文

codility上的问题 (22)

问题描述: 用1 * 1, 1 * 2的矩形覆盖一个n行m列的矩形,问有多少种方法。

数据范围 : n [1..10^6],  m [ 1..7]

要求复杂度: 时间  O(log(n) * 8 ^m))  空间  O(4^m)

分析:这个题跟之前那个木块砌墙问题一样…… 稍作修改即可,又是矩阵乘法。

http://blog.csdn.net/caopengcs/article/details/9928061

代码:

// you can also use includes, for example:
// #include <algorithm>#include <vector>vector<vector<int> > a;const int MOD =  10000007;int add(int x,int y) {return ((x += y) >= MOD)?(x - MOD):x;
}int mul(long long x,long long y) {return x * y % MOD;
}vector<vector<int> >  mulmatrix(vector<vector<int> > &a,vector<vector<int> > &b) {
vector<vector<int> > c;
int n = a.size(), i ,j, k;c.resize(n);for (i = 0; i < n; ++i) {c[i].resize(n , 0);for (j = 0; j < n; ++j) {for (k = 0; k < n; ++k) {c[i][j] = add(c[i][j], mul(a[i][k],b[k][j]));}}}return c;
}void count(int col, int n, int last, int now) {if (col >= n) {++a[last][now];return;}count(col + 1, n, last, now);if (((last & (1 << col)) == 0) && (col + 1 < n) && ((last & (1 << (col + 1))) == 0)) {count(col + 2, n, last, now | (3 << col));}
}int solution(int N, int M) {// write your code here...
int i,total = 1 << M;
vector<vector<int> > r;a.resize(total);r.resize(total);for (i = 0; i < total; ++i) {a[i].resize(total, 0);count(0, M, i, 0);r[i].resize(total, 0);r[i][i] = 1;}for (; N ; N >>= 1) {if (N & 1) {r = mulmatrix(r, a);}a = mulmatrix(a, a);}return r[0][0];}


相关文章:

session 与 cookie的区别

session和cookie是网站浏览中较为常见的两个概念&#xff0c;也是比较难以辨析的两个概念&#xff0c;但它们在点击流及基于用户浏览行为的网站分析中却相当关键。基于网上一些文章和资料的参阅&#xff0c;及作者个人的应用体会&#xff0c;对这两个概念做一个简单的阐述和辨析…

设计模式之迭代器模式(Iterator)摘录

23种GOF设计模式一般分为三大类&#xff1a;创建型模式、结构型模式、行为模式。 创建型模式抽象了实例化过程&#xff0c;它们帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类&#xff0c;而一个对象创建型模式将实例化委托给…

澎思科技成立新加坡研究院,将与多家机构合作研发自动驾驶等项目

2019 年 7 月 31 日&#xff0c;中国人工智能企业澎思科技宣布新加坡研究院正式揭牌成立&#xff0c;并成立澎思技术委员会&#xff0c;由来自新加坡国立大学、新加坡南洋理工学院等四名 AI 专家/教授担任澎思技术委员会首批委员。此外&#xff0c;澎思科技还与新加坡国立大学、…

对象----《你不知道的JS》

最近在拜读《你不知道的js》&#xff0c;而此篇是对于《你不知道的js》中对象部分的笔记整理&#xff0c;希望能有效的梳理&#xff0c;并且深入理解对象 一、语法 对象两种定义形式:声明&#xff08;文字&#xff09;形式、构造形式 声明&#xff08;文字&#xff09;形式 var…

Android:FragmentTransaction

为什么80%的码农都做不了架构师&#xff1f;>>> FragmentTransaction FragmentManager&#xff1a;能够实现管理activity中fragment. 通过调用activity的getFragmentManager()取得它的实例.。 FragmentTransaction&#xff1a;对fragment进行添加,移除,替换,以及执…

设计模式之解释器模式(Interpreter)摘录

23种GOF设计模式一般分为三大类&#xff1a;创建型模式、结构型模式、行为模式。 创建型模式抽象了实例化过程&#xff0c;它们帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类&#xff0c;而一个对象创建型模式将实例化委托给…

自动驾驶激荡风云录:来自圈内人的冷眼解读

作者 | 黄浴&#xff0c;奇点汽车美研中心总裁兼自动驾驶首席科学家编辑 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;最近一个月&#xff0c;有关自动驾驶的新闻层出不穷&#xff0c;也是少有的热闹。先说正面的吧。激情的焰火 ▌传感器之争2019 年 7 月&a…

激动人心的AutoCAD .net开发技术

自从了解了vsto和sc&#xff08;SmartClient&#xff09;技术后&#xff0c;对以前Win32的二次开发技术&#xff0c;再也没有一点兴趣。对Office VBA, AutoCAD lisp, VBA, PowerBuilder PoserScript, MapInfo MapBasic 的开发&#xff0c;简直室深恶痛绝&#xff0c;希望一切…

Linux Shell简介

目录 版权信息前言第一篇&#xff1a;超级工具&#xff0f;Terminals&#xff0c;xterms 和 Shells 一、超级工具二、为了说明 shell &#xff0c;这里需要一些背景知识。 1、Terminals, xterms 与 Shells2、终端&#xff08;Terminals&#xff09;3、xterms4、Shells 三、Shel…

浙大博士130页论文,教你用人工智能挑西瓜

作者 | 神经小姐姐来源 | HyperAI超神经&#xff08;ID&#xff1a;HyperAI&#xff09;【导读】要问什么水果和夏天最搭&#xff0c;答案一定是西瓜。作为西瓜生产与消费大国&#xff0c;中国在 2018 年以全世界 20% 的人口消耗掉全世界 70% 的西瓜&#xff0c;人均 100 斤。如…

一些要注意的地方

1、tomcat启动一直保持在starting状态时&#xff0c;最简单的原因就是时间过短&#xff0c;将时间变长就可以了。若还不能解决时&#xff0c;还可能就是端口号被占用了。通过netstat -nao | findstr ""可以看到占用你所使用的端口号的进程id,然后通过tasklist | find…

NEON在Android中的使用举例

1、 打开Eclipse&#xff0c;File-->New-->AndroidApplication Project-->Application Name:Hello-Neon, Project Name: Hello-Neon,Package Name:com.hello_neon.android, Minimum Required SDK:API 9:Android 2.3(Gingerbread),Next-->去掉Create custom launch…

Android中的JSON详细总结

1、JSON(JavaScript Object Notation) 定义&#xff1a; 一种轻量级的数据交换格式&#xff0c;具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案&#xff08;有点类似于正则表达式&#xff0c;获得了当今大部分语言的支持&#xff09;&#xff0c;从…

新一届最强预训练模型上榜,出于BERT而胜于BERT

作者 | Facebook AI译者 | Lucy编辑 | Jane出品 | AI科技大本营&#xff08;ID: rgznai100&#xff09;【导读】预训练方法设计有不同的训练目标&#xff0c;包括语言建模、机器翻译以及遮蔽语言建模等。最近发表的许多论文都使用了微调模型&#xff0c;并预先训练了一些遮蔽语…

Ubuntu 32下Android NDK+NEON的配置过程及简单使用举例

1、 利用VMware在Windows7 64位下安装Ubuntu13.10 32位虚拟机&#xff1b; 2、 从 https://developer.android.com/tools/sdk/ndk/index.html下载android-ndk32-r10-linux-x86.tar.bz2&#xff1b; 3、 将android-ndk32-r10-linux-x86.tar.bz2拷贝到Ubuntu的/home/spring/NE…

Neon Intrinsics各函数介绍

#ifndef __ARM_NEON__ #error You must enable NEON instructions (e.g. -mfloat-abisoftfp -mfpuneon) to use arm_neon.h #endif/*(1)、正常指令&#xff1a;生成大小相同且类型通常与操作数向量相同的结果向量&#xff1b; (2)、长指令&#xff1a;对双字向量操作数执行运算…

ubuntu bind9 配置简单记录

ubuntu bind9 配置简单记录ubuntu版本&#xff1a;Ubuntu 12.04.2bind9安装&#xff1a;apt-get install bind9bind9配置文件目录&#xff1a;/etc/bindbind9主要配置文件&#xff1a;named.conf.local以及对应db配置1&#xff0c;主服务器配置&#xff1a;rootubuntu:/etc/bin…

不止最佳长论文,腾讯AI在ACL上还有这些NLP成果

编辑 | Jane出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;【导语】7 月 31 日晚&#xff0c;自然语言处理领域最大顶会 ACL 2019 公布了今年的八个论文奖项&#xff0c;其中最佳长论文的获奖者被来自中国科学院大学、中国科学院计算技术研究所、腾讯 We…

python中package机制的两种实现方式(转载)

当执行import module时&#xff0c;解释器会根据下面的搜索路径&#xff0c;搜索module1.py文件。 1) 当前工作目录 2) PYTHONPATH中的目录 3) Python安装目录 (/usr/local/lib/python) 事实上&#xff0c;模块搜索是在保存在sys.path这个全局变量中的目录列表中进行搜索。 sys…

Magento如何使用和设置CookieSession

2019独角兽企业重金招聘Python工程师标准>>> 给大家介绍两个Magento的核心对象&#xff0d;Mage_Core_Model_Cookie & Mage_Core_Model_Session 首先介绍Mage_Core_Model_Cookie&#xff0c;这个对象主要是用来设置Cookie的&#xff0c;里面主要下列方法&#x…

AI+DevOps正当时

随着业务复杂化和人员的增加&#xff0c;开发人员和运维人员逐渐演化成两个独立的部门&#xff0c;他们工作地点分离&#xff0c;工具链不同&#xff0c;业务目标也有差异&#xff0c;这使得他们之间出现一条鸿沟。而发布软件就是将一个软件想从鸿沟的这边送去那边&#xff0c;…

clientdataset 用法

影响ClientDataSet处理速度的一个因素TClientDataSet是Delphi开发数据库时一个非常好的控件。有很强大的功能。我常常用ClientDataSet做MemoryDataSet来使用。还可以将ClientDataSet的数据保存为XML&#xff0c;这样就可以做简单的本地数据库使用。还有很多功能就不多说了。在使…

用vs2010编译vigra静态库及简单使用举例

1、 从 http://ukoethe.github.io/vigra/ 下载最新源代码vigra-1.10.0-src-with-docu.tar.gz&#xff0c;并加压缩到D:\soft\vigra&#xff0c;生成vigra-1.10.0文件夹&#xff1b; 2、 从http://www.cmake.org/cmake/resources/software.html下载CMake并安装&#xff1b; …

39个超实用jQuery实例应用特效

2019独角兽企业重金招聘Python工程师标准>>> 1.Contextual Slideout&#xff1a;上下文滑动特效 2.Revealing Photo Slider&#xff1a;图片幻灯片特效 3.Fancy Box&#xff1a;魔幻盒 4.Scrollable&#xff1a;滚动特效 5.Flip&#xff1a;翻转特效,实现4个方向…

Android.mk和Application.mk文件语法规范说明及举例

以下英文内容摘自&#xff1a;http://www.kandroid.org/ndk/docs/OVERVIEW.html The Android NDK is a set of tools that allows Android application developers to embed native machine code compiled from C and/or C source files into their application packages.NDK d…

ASP.NET Web API实践系列06, 在ASP.NET MVC 4 基础上增加使用ASP.NET WEB API

本篇尝试在现有的ASP.NET MVC 4 项目上增加使用ASP.NET Web API。 新建项目&#xff0c;选择"ASP.NET MVC 4 Web应用程序"。 选择"基本"项目模版。 在Controllers文件夹下添加一个名称为"TestController"的空API控制器。 在引用文件夹中多了以下…

滴滴自动驾驶部门成立独立公司,CTO张博兼任新公司CEO

整理 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;导读&#xff1a;8 月 5 日&#xff0c;滴滴出行官方微信公众号发文&#xff0c;宣布旗下自动驾驶部门升级为独立公司。目前&#xff0c;新成立公司的名称还未曝光&#xff0c;但据官方介绍将专注于自动驾驶…

在ASP.NET MVC下实现树形导航菜单

在需要处理很多分类以及导航的时候&#xff0c;树形导航菜单就比较适合。例如在汽车之家上&#xff1a; 页面主要分两部分&#xff0c;左边是导航菜单&#xff0c;右边显示对应的内容。现在&#xff0c;我们就在ASP.NET MVC 4 下临摹一个&#xff0c;如下&#xff1a; 实现的效…

mongodb学习笔记6--杂项与补充

2019独角兽企业重金招聘Python工程师标准>>> 1。适用场景&#xff1a;持久化缓存层&#xff0c;高效的时效性&#xff0c;用于对象和Json数据的存储&#xff0c;高伸缩性的场景&#xff0c;大尺寸&#xff0c;低价值的数据存储。 不适用&#xff1a;高度事务性的场景…

GraphSAGE:我寻思GCN也没我厉害!

作者 | 郭必扬来源 | SimpleAI&#xff08;ID:SimpleAI_1&#xff09;众所周知&#xff0c;2017年ICLR出产的GCN现在是多么地热门&#xff0c;仿佛自己就是图神经网络的名片。然而&#xff0c;在GCN的风头中&#xff0c;很多人忽略了GCN本身的巨大局限——Transductive Learnin…