Description

监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱

Input

输入两个整数M,N.1<=M<=10^8,1<=N<=10^12

Output

可能越狱的状态数,模100003取余

Sample Input

2 3

Sample Output

6

HINT

6种状态为(000)(001)(011)(100)(110)(111)

分析

注意一种状态即使有多处发生越狱也只能算一次。

f(i)表示前i个监狱可能发生越狱的状态数,g(i)表示前i个监狱不发生越狱的状态数。容易得到转移方程:

f(i) = f(i-1) + g(i-1);

g(i) = (M-1)g(i-1);

就可以用矩阵加速了。

 ms
 kb
 #include <cctype>
 #include <cstdio>
  template<typename T>inline      ;
          , c = getchar();
     x = c -       + c -       }
  ;
 typedef  inline      LL ans = ;
              )ans = ans * x % mod;
         x = x * x % mod;
         k >>= ;
     }
      }
           freopen(                  
     LL m, n;
     getd(m), getd(n);
     ){putchar(;}
     printf() + mod - powmod(m-, n-)) % mod);
      
     ;
 }

矩阵快速幂

最新文章

  1. Python3使用urllib访问网页
  2. 规范化的软件项目演进管理--从 Github 使用说起
  3. http://developer.51cto.com/art/200512/15883.htm
  4. C# winform编程中多线程操作控件方法
  5. cf 219D
  6. MySQL DBA修炼秘籍
  7. 数学#素数判定Miller_Rabin+大数因数分解Pollard_rho算法 POJ 1811&amp;2429
  8. Python网络数据采集1-Beautifulsoup的使用
  9. 手写数字识别 ----在已经训练好的数据上根据28*28的图片获取识别概率(基于Tensorflow,Python)
  10. linux软件管理 YUM命令
  11. 德州扑克AI--Programming Poker AI(译)
  12. hive 中简单的udf函数编写
  13. 移动端开发:使用jQuery Mobile还是Zepto
  14. MonGoDB 在linux 上的安装和配置
  15. css3 之border-radius 属性解析
  16. arcgis按要求删除点位
  17. 使用 Json 文件存储
  18. rsyslog local0-local7的用法
  19. mysql修改编码(数据库,表,字段)
  20. RESTful API的十个最佳实践

热门文章

  1. 20179205《Linux内核原理与分析》第一周作业
  2. python之提速千倍爆破一句话
  3. Linux_信号与信号量【转】
  4. 64_m2
  5. JavaScript知识点的总结
  6. 3.Python3标准库--数据结构
  7. iframe子页面获取父页面元素和window对象
  8. Leetcode 之Longest Common Prefix(34)
  9. shell 中的&lt;,&lt;&lt;,&gt;,&gt;&gt;
  10. resteasy web Guice集成版本