设为首页 加入收藏

TOP

HDU2256-Problem of Precision(矩阵构造+快速幂)
2015-07-20 17:46:59 来源: 作者: 【 】 浏览:2
Tags:HDU2256-Problem Precision 矩阵 构造 快速

题目链接


题意:求sqrt(sqrt(2) + sqrt(3)) ^ 2n MOD 1024

思路:

\

代码:

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        using namespace std; const int MOD = 1024; int n; struct mat { int s[2][2]; mat(int a = 0, int b = 0, int c = 0, int d = 0) { s[0][0] = a; s[0][1] = b; s[1][0] = c; s[1][1] = d; } mat operator * (const mat& c) { mat ans; sizeof(ans.s, 0, sizeof(ans.s)); for (int i = 0; i < 2; i++) for (int j = 0; j < 2; j++) for (int k = 0; k < 2; k++) ans.s[i][j] = (ans.s[i][j] + s[i][k] * c.s[k][j]) % MOD; return ans; } }tmp(5, 12, 2, 5); mat pow_mod(int k) { if (k == 1) return tmp; mat a = pow_mod(k / 2); mat ans = a * a; if (k % 2) ans = ans * tmp; return ans; } int main() { int cas; scanf("%d", &cas); while (cas--) { scanf("%d", &n); mat ans = pow_mod(n); printf("%d\n", (ans.s[0][0] * 2 - 1) % MOD); } return 0; }
      
     
    
   
  


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇STL算法find,find_if,find_if_no.. 下一篇UVA 610 - Street Directions(割..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何在 C 语言中管理 (2025-12-25 03:20:14)
·C语言和内存管理有什 (2025-12-25 03:20:11)
·为什么C语言从不被淘 (2025-12-25 03:20:08)
·常用meta整理 | 菜鸟 (2025-12-25 01:21:52)
·SQL HAVING 子句:深 (2025-12-25 01:21:47)