当前位置: 首页 > news >正文

河南省汝州市文明建设网站/南宁seo排名外包

河南省汝州市文明建设网站,南宁seo排名外包,淄博学校网站建设报价,成都市制作企业网站...起床了 先把这题给过了 还是今天凌晨留下来的.... 刚开始真sb啊 以为矩阵构造出来不能进行快速幂运算的 一定要借助单位矩阵..... 一般你构造出来的时候 2个矩阵的行列不是全都相等的 为了方便运算 我们可以空余位置默认为0 反正我是这样解决的 ....好像这个解决方法有点渣…

...起床了 先把这题给过了 还是今天凌晨留下来的....

刚开始真sb啊 以为矩阵构造出来不能进行快速幂运算的 一定要借助单位矩阵.....

一般你构造出来的时候 2个矩阵的行列不是全都相等的  为了方便运算 我们可以空余位置默认为0

反正我是这样解决的 ....好像这个解决方法有点渣 我也不清楚...

    touch    me

 

 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 
 5 const int mod = 2009;
 6 
 7 struct data
 8 {
 9     int m[4][4];
10 }base,result;
11 
12 void init( )
13 {
14     memset( base.m , 0 , sizeof(base.m) );
15     base.m[0][1] = base.m[1][2] = base.m[3][0] = base.m[3][3] = 1;
16     base.m[2][0] = 7;
17     base.m[2][1] = 2;
18     base.m[2][2] = 3;
19     
20     memset( result.m , 0 , sizeof(result.m) );
21     result.m[0][0] = 1;
22     result.m[1][0] = 3;
23     result.m[2][0] = 5;
24     result.m[3][0] = 0;
25 }
26 
27 data multi( data& p , data& q )//p--base q--result
28 {
29     data temp;
30     for( int i = 0 ; i<4 ; i++ )
31     {
32         for( int j = 0 ; j<4 ; j++ )
33         {
34             temp.m[i][j] = 0;
35             for( int k = 0 ; k<4 ; k++ )
36             {
37                 temp.m[i][j] = ( temp.m[i][j] + p.m[i][k]*q.m[k][j] ) %mod;
38             }
39         }
40     }
41     return temp;
42 }
43 
44 int fastMod( int n )
45 {
46     while( n )
47     {
48         if( n&1 )
49         {
50             result = multi( base , result );
51         }
52         base = multi( base , base );
53         n >>= 1;
54     }
55     return result.m[3][0];
56 }
57 
58 int main()
59 {
60     int t , n;
61     while( cin >> t )
62     {
63         for( int i = 1 ; i<=t ; i++ )
64         {
65             init();
66             cin >> n;
67             cout << "Case " << i << ": " << fastMod(n+1) << endl;
68         }
69     }
70     return 0;
71 }
View Code

 

 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 
 5 const int mod = 2009;
 6 
 7 struct data
 8 {
 9     int m[4][4];
10     int mat[4][1];
11 }base,result;
12 
13 void init( )
14 {
15     memset( base.m , 0 , sizeof(base.m) );
16     base.m[0][1] = base.m[1][2] = base.m[3][0] = base.m[3][3] = 1;
17     base.m[2][0] = 7;
18     base.m[2][1] = 2;
19     base.m[2][2] = 3;
20     
21     result.mat[0][0] = 1;
22     result.mat[1][0] = 3;
23     result.mat[2][0] = 5;
24     result.mat[3][0] = 0;
25 }
26 
27 data multi( data& p , data& q )//p--base q--result
28 {
29     data temp;
30     for( int i = 0 ; i<4 ; i++ )
31     {
32         for( int j = 0 ; j<1 ; j++ )
33         {
34             temp.mat[i][j] = 0;
35             for( int k = 0 ; k<4 ; k++ )
36             {
37                 temp.mat[i][j] = ( temp.mat[i][j] + p.m[i][k]*q.mat[k][j] ) %mod;
38             }
39         }
40     }
41     return temp;
42 }
43 
44 data mul( data& p , data& q )//p--base q--base
45 {
46     data t;
47     for( int i = 0 ; i<4 ; i++ )
48     {
49         for( int j = 0 ; j<4 ; j++ )
50         {
51             t.m[i][j] = 0;
52             for( int k = 0 ; k<4 ; k++ )
53             {
54                 t.m[i][j] = ( t.m[i][j] + p.m[i][k]*q.m[k][j] ) %mod;
55             }
56         }
57     }
58     return t;
59 }
60 
61 int fastMod( int n )
62 {
63     while( n )
64     {
65         if( n&1 )
66         {
67             result = multi( base , result );
68         }
69         base = mul( base , base );
70         n >>= 1;
71     }
72     return result.mat[3][0];
73 }
74 
75 int main()
76 {
77     int t , n;
78     while( cin >> t )
79     {
80         for( int i = 1 ; i<=t ; i++ )
81         {
82             init();
83             cin >> n;
84             cout << "Case " << i << ": " << fastMod(n+1) << endl;
85         }
86     }
87     return 0;
88 }
View Code

速度上 后者更快点 可能是因为前面进行了 无谓的*0运算吧...

其实 可以通过二分 更加高效 我还没写过~

 

today:

   我不知道该说什么,我只是突然在那一刻很想念她 ------- 

转载于:https://www.cnblogs.com/radical/p/3853486.html

http://www.lbrq.cn/news/1579105.html

相关文章:

  • 松江泖港网站建设/百度关键词代做排名
  • 应用制作下载/怀来网站seo
  • 安徽省建设行业质量与安全协会网站/怎么开一个网站平台
  • 网站服务器多少钱一月/网络营销的优缺点
  • 企业网站设计经典案例/seo实战培训王乃用
  • 教育类网站如何做/合肥seo网站管理
  • 免费b2b网站大全免费黄页/seo课程总结
  • 专业的网站建设公/长沙县网络营销咨询
  • 一站式网站建设与运营/30个免费货源网站
  • 如何建微信商城网站/广州婚恋网站排名
  • 建站域名/营销型网站分析
  • 网站的系统建设方式/网站关键词优化培训
  • 网站淘宝客怎么做的/网上售卖平台有哪些
  • wordpress媒体库删除/网络优化是干什么的
  • 网站 做百度推广有没有效果怎么样/品牌宣传方式
  • 深圳做律师网站公司/深圳网站优化平台
  • 拼多多卖网站建设/googleplay官方下载
  • 国内漂亮网站欣赏/营销软文范例大全300
  • 西安网站注册/企业网站seo排名
  • wordpress新打开空白页/举例说明seo
  • 营销型网站建设论文/软考培训机构哪家好一点
  • 如何做自己网站/微博推广效果怎么样
  • 承接网站建设 优帮云/电商营销推广方案
  • 广告公司做网站的效果怎么样/网络营销优化培训
  • 手机网站轮播图/鹤壁seo公司
  • 威县做网站哪里便宜/郑州网站推广公司排名
  • 南山做网站方案/seo搜索优化是什么
  • app设计网站推荐/湖南百度推广
  • 什么网站可以做行测/百度官方平台
  • 平面设计师工资一般多少钱一个月/西安网站关键词优化推荐
  • 用 Apache Iceberg 与 Apache Spark 在 Google Cloud 打造高性能、可扩展的数据湖仓
  • 【论文阅读】RestorerID: Towards Tuning-Free Face Restoration with ID Preservation
  • 【项目设计】高并发内存池
  • 小红书笔记信息获取_实在智能RPA源码解读
  • GESP2023年9月认证C++一级( 第三部分编程题(1)买文具)
  • ROS2学习(1)—基础概念及环境搭建