hdoj 3521 An easy Problem(矩阵乘法)
来源:互联网 发布:mac没有flash怎么办 编辑:程序博客网 时间:2024/05/20 12:48
【题目大意】:
其中A是给定矩阵,I是单位矩阵。
【解题思路】:直接暴力做吧...
【代码】:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#include <queue>#include <cmath>#include <string>#include <cctype>#include <map>#include <iomanip> using namespace std; #define eps 1e-8#define pi acos(-1.0)#define inf 1<<30#define linf 1LL<<60#define pb push_back#define lc(x) (x << 1)#define rc(x) (x << 1 | 1)#define lowbit(x) (x & (-x))#define ll long longstruct Mart{ double mat[105][105];};Mart a,ans1,ans;int n;double k;Mart mart_multiply(Mart a,Mart b){ Mart c; for(int i=1; i<=n; i++) for(int j=1; j<=n; j++){ c.mat[i][j]=0; for(int k=1; k<=n; k++) c.mat[i][j]=c.mat[i][j]+a.mat[i][k]*b.mat[k][j]; } return c;}void copy(Mart p){ for (int i=1; i<=n; i++) for (int j=1; j<=n; j++) a.mat[i][j]=p.mat[i][j];}void solve_mart_power(int np){ Mart p,q; for(int i=1; i<=n; i++) for(int j=1; j<=n; j++){ p.mat[i][j]=ans1.mat[i][j]; if(i==j) q.mat[i][j]=1.0; else q.mat[i][j]=0.0; } if(np==0) copy(q); else { while(np!=1){ if(np&1){ np--; q=mart_multiply(p,q); } else{ np=np/2; p=mart_multiply(p,p); } } p=mart_multiply(p,q); copy(p); } return ;}int main(){ while (~scanf("%d",&n)){ if(n==0) break; for (int i=1; i<=n; i++) for (int j=1; j<=n; j++){ scanf("%lf",&a.mat[i][j]); ans1.mat[i][j]=a.mat[i][j]; ans.mat[i][j]=0; } k=1; for (int i=1; i<=50; i++){ solve_mart_power(i-1); if (i!=1) k=k*((i-1)*1.0); for (int j=1; j<=n; j++){ for (int l=1; l<=n; l++){ ans.mat[j][l]=ans.mat[j][l]+a.mat[j][l]/k; } } } for (int i=1; i<=n; i++){ for (int j=1; j<=n; j++) printf("%.2f ",ans.mat[i][j]); printf("\n"); } } return 0;}
- hdoj 3521 An easy Problem(矩阵乘法)
- hdoj An easy problem
- An easy problem hdoj 2055
- HDOJ 2055 An easy problem
- hdoj 2601 An easy problem
- HDOJ 2055 An easy problem
- HDOJ 2055 An easy problem
- hdoj 2055 An easy problem
- HDOJ 2055 An easy problem
- hdoj-2055-An easy problem
- HDOJ-【2601 An easy problem】
- HDOJ 2132 An easy problem
- HDOJ 2055 An easy problem
- An easy DP problem HDOJ 1176
- hdoj.2055 An easy problem 20140729
- hdoj 2055 An easy problem(新知识%*c)
- HDOJ(HDU) 2132 An easy problem
- hdoj 2601 An easy problem (数学)
- 新简单内存池
- 股票书籍
- SGU 117 Counting 数论
- 数组最大值
- Drawable Mutations--绘图变异
- hdoj 3521 An easy Problem(矩阵乘法)
- 几个有用的MyEclipse设置
- 初等字符串匹配专题小结[KMP][Manacher][Tire Tree][AC Automation]
- 什么是反向代理,如何利用反向代理提高网站性能
- 根据时间关机
- 【软件测试】使用JUnit框架实现Java单元测试
- MySQL乱码问题终极指南
- oracle并发控制
- 让你少奋斗10年的工作经验