思路: 根據矩陣乘法的定義,g中的第i行第j列的元素 ai,j ,對答案的貢獻為 ai,j∗ t中第j行的所有元素之和。
因此我們可以將t中根據每行的和進行排序。第i行的和可以通過公式 (ai^n−1)/(ai−1)直接得出。
注意考慮 ai=1,ai=0 以及 ai>mod 的特殊情況即可。還有就是對於除法取模需要用到逆元(費馬小定理)
一開始沒注意除法取模 狂wa 12遍也是心累。。。。。
1 #include2 #include3 #include4 #include56using
namespace
std;
7 typedef long
long
ll;8
const ll mod = 1e9 + 7;9
const
int maxn = 1e5 + 10;10
ll b[maxn], ans, a[maxn];
11ll n, m;
12 ll pow(ll a, ll b)//
快速冪13
19 a *= a;a %=mod;
20 b >>= 1;21
}22return
ans;23}
24int
main()
2531 sort(a + 1, a + m + 1
);32
for (int i = 1; i <= m; i++) 40}
41//
以下是求解
42 ans = 0
;43 ll num = (n*(n + 1) / 2) %mod;
44for (int i = 1; i <= m; i++)
48 cout << ans <
50return0;
51 }
基於範德蒙矩陣的Erasure code技術詳解
在傳統儲存領域,隨著磁碟容量的不斷增大,raid 資料重構時間將會是乙個非常嚴重的問題。大家知道,過長的資料重構時間意味著資料可靠性下降。所以,在 raid 設計的過程中,一定要考慮資料重構的時間,並且盡可能的將 無資料保護狀態 的時間降到最小。在不改變傳統 raid 架構前提下,只能通過增加資料冗...
基於範德蒙矩陣的Erasure code技術詳解
在傳統儲存領域,隨著磁碟容量的不斷增大,raid資料重構時間將會是乙個非常嚴重的問題。大家知道,過長的資料重構時間意味著資料可靠性下降。所以,在raid設計的過程中,一定要考慮資料重構的時間,並且盡可能的將 無資料保護狀態 的時間降到最小。在不改變傳統raid架構前提下,只能通過增加資料冗餘度來緩解...
基於範德蒙矩陣的Erasure code技術詳解
時間2014 05 04 20 57 31 儲存之道 原文在傳統儲存領域,隨著磁碟容量的不斷增大,raid 資料重構時間將會是乙個非常嚴重的問題。大家知道,過長的資料重構時間意味著資料可靠性下降。所以,在raid 設計的過程中,一定要考慮資料重構的時間,並且盡可能的將 無資料保護狀態 的時間降到最小...