矩阵快速幂求出每个点走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;
}

  

1122 机器人走方格 V4
基准时间限制: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

转载于:https://www.cnblogs.com/fighting-to-the-end/p/5866348.html

51nod1122 机器人走方格 V4相关推荐

  1. 51nod 1118 机器人走方格 解题思路:动态规划 1119 机器人走方格 V2 解题思路:根据杨辉三角转化问题为组合数和求逆元问题

    51nod 1118 机器人走方格: 思路:这是一道简单题,很容易就看出用动态规划扫一遍就可以得到结果, 时间复杂度O(m*n).运算量1000*1000 = 1000000,很明显不会超时. 递推式 ...

  2. 牛客网 - 机器人走方格 (动态规划)

    机器人走方格 解法1(排列组合) 公式:Cx+y−2x−1C_{x+y-2}^{x-1}Cx+y−2x−1​或Cx+y−2y−1C_{x+y-2}^{y-1}Cx+y−2y−1​ 注意点: x和y是方 ...

  3. 程序员面试金典——9.2机器人走方格

    程序员面试金典--9.2机器人走方格 问题I: Solution1:我的答案 普通的从左上角走到右下角的题目 动态规划,哈哈啊哈哈哈 class Robot { public:int countWay ...

  4. 机器人走方格(51Nod-1119)

    题目 M * N的方格,一个机器人从左上走到右下,只能向右或向下走.有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10^9 + 7的结果. 输入 第1行,2个数M,N,中间用空格隔开.( ...

  5. 51 nod 机器人走方格

    从一个长方形的方格的右上角 走到 左下角 , 问一共有多少种不同的路线可以达到 . 1 #include<stdio.h> 2 #include<string.h> 3 #in ...

  6. 【算法】机器人走迷宫(适用于走迷宫、最短路径算法)-20200412

    标题:机器人走迷宫(适用于走迷宫.最短路径算法) 问题描述: 一块矩形方格,含有障碍和可通行格子,求从某一点到另外一点的最短距离?N*M的矩阵: 其中,1代表障碍,0代表可通行:示例:给定二维矩阵 0 ...

  7. 中南大学复试上机:1021:机器人走迷宫

    1021: 机器人走迷宫 时间限制: 1 Sec  内存限制: 128 MB 题目描述 有一个愚蠢的机器人走进一个w*h的迷宫,迷宫里有空地和陷阱.他想要访问迷宫的每个方格,但是它很笨,只会按照指令的 ...

  8. 【华为机试真题 Python实现】机器人走迷宫

    文章目录 题目描述 示例1: 输入: 输出: 示例2: 输入: 输出: 示例3: 输入: 输出: 参考代码 该题出自2020年5月机试由"赫夫曼"提供,祝他早日上岸. 题目描述 机 ...

  9. 【华为OD机试真题 JAVA】机器人走迷宫

    标题:机器人走迷宫 | 时间限制:1秒 | 内存限制:65536K | 语言限制:不限 1. 房间由X*Y的方格组成,例如下图为6*4的大小.每一个方格以坐标(x,y)描述. 2. 机器人固定从方格( ...

  10. 【华为机试】【校招】【Java】机器人走迷宫(DFS)

    ■ 题目描述 [机器人走迷宫] 机器人走一个迷宫,给出迷宫的x和y(x*y的迷宫)并且迷宫中有障碍物,输入k表示障碍物有k个,并且会将障碍物的坐标挨个输入. 机器人从0,0的位置走到x,y的位置并且只 ...

最新文章

  1. 解决老版本eclipse无法完全替换主题的问题
  2. 现在无法停止通用卷设备_软化和柔顺有什么区别吗?头发粗硬适合拉直还是烫卷?...
  3. 小区社交应用:如何打破近在眼前的物理障碍和陌生感?
  4. oracle 删除列 大数据_Oracle 删除指定sql的执行计划。
  5. VS2005--设置Release模式下调试
  6. Arrays.toList工具类
  7. 在PaddlePaddle框架下通过两层全连接网络实现IRIS数据分类
  8. [常微分方程]Lecture 2: 欧拉数值方法及推广
  9. 再生核希尔伯特空间和核方法
  10. 基于javaweb的驾校车辆教练预约系统ssm+Vue
  11. 2.3.4nbsp;《孙子兵法》的基本原则
  12. IM即时通讯需要解决的问题
  13. java使用CLE调用python37
  14. 利用python如何抓取微博评论?
  15. 驱动辅助资料(工具,目录,指令,debug经验)
  16. Web安全 XXE漏洞的 测试和利用.(读取服务器的任何文件 和 收集服务器的内网信息.)
  17. 固态硬盘、机械硬盘工作原理和区别(内附接口知识)
  18. Linux系统怎么做安全防护,linux系统安全防护
  19. select2搜索内容显示搜索词
  20. 【SpringBoot】SpringBoot常用注解

热门文章

  1. 怎么判断有用户在远程连接目标电脑_你的电脑是肉鸡吗?
  2. UGUI的Slider
  3. Redis缓存组件开发规范
  4. redis内核单元测试框架
  5. c++ ftp服务端_FTP文件传输协议详解
  6. 学习嵌入式和单片机有没有必要,价值体现在哪
  7. 大学课程为什么不绕过51单片机直接搞STM32来做比赛
  8. 【渝粤教育】广东开放大学 操作系统原理与应用 形成性考核 (46)
  9. 【渝粤教育】广东开放大学 形成性考核 (29)
  10. 爬取糗事百科1到5页的图片并下载到本地