題意還是比較好理解的,即如果矩陣a、b、c滿足a*b=c,則代表矩陣a的第i個城市與代表矩陣b的第j個城市之間存在通路。。。
orz。。。然後我就按一般的矩陣相等的條件去判斷。。。結果tle了。。。2000ms+了。。。
然後就學了一下矩陣的優化。。。優化後。。。60ms。。orz。。。
一開始的**:
1 #include2優化後的**。。const
int n=100;3
const
int inf=10000000;4
using
namespace
std;56
intedge[n][n];
7int
n,m;
8struct
matrix;
11matrix matrix[n],m;
1213 matrix calculate(const
int &p,const
int &q)
21 mat.map[i][j]=ans;22}
23}24return
mat;25}
2627
int cmp(const matrix &p,const matrix &q)33}
34return1;
35}3637
void
floyd()46}
47}48}
49}5051
52int
main()59}
60for(int i=1;i<=n;i++)65}
66}67for(int i=1;i<=n;i++)76}
77}78}
79floyd();
80int
t;81 scanf("
%d",&t);
82while(t--)else
88 printf("
sorry\n");
89}90}
91return0;
92 }
1 #include2const
int n=100;3
const
int inf=10000000;4
using
namespace
std;56
intedge[n][n];
7int
n,m;
8struct
matrix;
11struct
rematrix;
1415
matrix matrix[n];
16rematrix rematrix[n];
1718
void cmp(const
int &a,const
int &b)
24 edge[a][b]=1;25
}2627void createmap(const
int &p,const
int &q)33}
34for(int i=1;i<=n;i++)37}
3839
40void
floyd()49}
50}51}
52}5354
intmain()61}
62for(int i=1;i<=n;i++)69}
70}71for(int i=1;i<=n;i++)76}
77floyd();
78int
t;79 scanf("
%d",&t);
80while(t--)else
86 printf("
sorry\n");
87}88}
89return0;
90 }
hdu2807 矩陣乘法 floyd
網上有優化的方法 就是乘上乙個一維的矩陣 現在還沒有想通。想通了不上 我用的就是普通的矩陣,壓著時間過 只是多了乙個判斷條件,不加這個條件就超時 include include define inf 99999999 define maxn 85 struct mata 85 intn,m,map ...
能力體系比較矩陣
如何使用該矩陣 1 參看第1列列出的 能力體系最佳經驗標準 2 把當前的或準備開發的能力體系的各個要素,與每一條最佳經驗進行比較,並在第2列說明是否符合最佳經驗要求,還是需要採納最佳經驗以滿足業務需求。3 在第3列中,通過比較準備開發的能力體系 第2列 與 最佳經驗 第1列 明確制約因素或需要關注的...
矩陣構造 矩陣快速冪 HDU5950
題目 題意 給出公式f n f n 1 f n 2 2 n 4 給出n f 1 f 2 求f n 分析 快速冪 把公式分解一下,求一下矩陣,矩陣快速冪搞一下就好 題目的難點在於矩陣的構造題解 典型的矩陣快速冪的運用。關鍵是i 4怎麼維護?我們可以當成求第i 1項,那麼i 4就變成了 i 1 4。那麼...