結構體類型快速驅魔運算及運算子的重載

來源:互聯網
上載者:User

標籤:style   blog   color   資料   for   代碼   

下面得到這段代碼可以用在很多地方:只需要自己修改下接Ok.

 

 

 

 1 struct Matrix 2  { 3     long long mat[N][N]; 4     Matrix operator*(const Matrix m)const//定義矩陣乘法的運算子* 5     { 6         Matrix tmp; 7         for(int i = 0;i < n;i++) 8         { 9             for(int j = 0;j < n;j++)10             {11                 tmp.mat[i][j] = 0;12                 for(int k = 0;k < n;k++)13                 {14                     tmp.mat[i][j] += mat[i][k]*m.mat[k][j]%MOD;//這裡需要重點掌握15                     tmp.mat[i][j] %= MOD;16                 }17             }18         }19         return tmp;20     }21 };22 long long Pow(Matrix &m,int k)23 {24     Matrix ans;25     memset(ans.mat,0,sizeof(ans.mat));26     for(int i = 0;i < n;i++)27         ans.mat[i][i] = 1;28     while(k)29     {30         if(k&1) ans = ans*m;//這裡是以二進位形式轉化的,需要細細體會31         k >>= 1;32         m = m*m;33     }34     long long sum = 0;35     for(int i = 0;i < n;i++)36     {37         sum += ans.mat[i][i]%MOD;//這裡需要注意,這裡和先把所有資料加起來再模數是等價的。38         sum %= MOD;39     }40     return sum;41 }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.