矩阵快速幂求出每个点走n步后到某个点的方案数。然后暴力枚举即可

#include<cstdio>
#include<cstring>
#include<cctype>
#include<algorithm>
using namespace std;
#define rep(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
#define clr(x,c) memset(x,c,sizeof(x))
#define ll long long
int read(){
int x=0;char c=getchar();
while(!isdigit(c)) c=getchar();
while(isdigit(c)) x=x*10+c-'0',c=getchar();
return x;
}
const int nmax=5;
const int mod=1e9+7;
struct node{
ll a[nmax][nmax];
node(){
clr(a,0);
}
node operator*(const node&o)const{
node ans;
rep(i,1,4) rep(j,1,4) {
rep(k,1,4) ans.a[i][j]+=a[i][k]*o.a[k][j]%mod;
ans.a[i][j]%=mod;
}
return ans;
}
};
node a,b;
int main(){
int n=read();
rep(i,1,4) rep(j,1,4) if(i!=j) b.a[i][j]=1;
rep(i,1,4) a.a[i][i]=1;
while(n){
if(n&1) a=a*b;
b=b*b;n>>=1;
}
ll ans=0;
rep(i,1,4) rep(j,1,4) if(i!=j) rep(k,1,4) if(k!=j&&k!=i) rep(t,1,4) if(t!=i&&t!=j&&t!=k)
ans=(ans+a.a[1][i]*a.a[2][j]%mod*a.a[3][k]%mod*a.a[4][t]%mod)%mod;
printf("%lld\n",ans);
return 0;
}

  

基准时间限制:1 秒 空间限制:131072 KB 分值: 160 难度:6级算法题
 收藏
 关注
四个机器人a b c d,在2 * 2的方格里,一开始四个机器人分别站在4个格子上,每一步机器人可以往临近的一个格子移动或留在原地(同一个格子可以有多个机器人停留),经过n步后有多少种不同的走法,使得每个毯子上都有1机器人停留。由于方法数量巨大,输出 Mod 10^9 + 7的结果。

 
Input
输入1个数N(0 <= N <= 10^9)
Output
输出走法的数量 Mod 10^9 + 7
Input示例
1
Output示例
9

最新文章

  1. 【ASP.NET】VS编译成功后自动生成Nuget包
  2. PHP之static静态变量详解(二)
  3. 限制帐号同时两处以上登录-ASP.NET
  4. PHP字符串函数
  5. 零成本实现Web性能测试:基于Apache JMeter
  6. 使用 IDEA + Maven + Git 快速开发 JAVA或者Web 应用(转)
  7. Node.js的UnitTest单元测试
  8. Java语法笔记
  9. [课程设计]Scrum 2.8 多鱼点餐系统开发进度(下单一览页面-菜式一览功能的最终实现)
  10. js - ajax中的get和post说明
  11. (转)html5开发之viewport使用
  12. hdu4642 Fliping game ——博弈
  13. java堆栈
  14. 如何定位到append的当前位置,不用拉滚动条scrollIntoView方法
  15. MyEclipse数据库反向生成实体类
  16. 【ASP.NET Web API教程】2.3.2 创建域模型
  17. MOOS通配符订阅
  18. JSHFJK师德师风幅度十分时尚大方JSHFJK
  19. UGUI ContentSizeFitter之Button根据Text自适应
  20. ajax获取的数据如何渲染到dom元素上

热门文章

  1. javascript设计模式-抽象工厂模式
  2. Nginx SPDY Pagespeed模块编译——加速网站载入
  3. sshd_config配置 详解
  4. uva 10564
  5. Android Handler的使用
  6. 如何提高SQL的执行效率
  7. [你必须知道的.NET]第三十三回,深入.NET 4.0之,Lazy&lt;T&gt;点滴
  8. (1)搭建opencv-android环境
  9. JS加载时间线
  10. C++运算符重载——重载一元运算符