BZOJ2476 戰場的數目 矩陣快速冪

2021-09-07 20:37:48 字數 1055 閱讀 8495

題目鏈結

神仙題orzzz

考慮兩邊是否有\(1\)

設\(f[i]\)表示周長為\(2i\)的方案數

第一種情況:左側或右側有乙個1,那麼把這個1刪去,對應的方案數為\(f[i - 1]\)

第二種情況:左側和右側都有乙個1,把這兩個1刪去,對應的方案數為\(f[i - 2]\)

第三種情況:左側右側都沒有1,把最下面一層刪去,對應的方案為\(f[i - 1]\)

綜上,遞推式為\(f[i] = 3f[i - 1] - f[i - 2]\)

最後再減去矩形的方案為\(n / 2 - 1\)

矩陣快速冪優化一下

#includeusing namespace std;

const int maxn = 2e5 + 10, mod = 987654321;

inline int read()

while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();

return x * f;

}int n;

int add(int x, int y)

int mul(int x, int y)

struct ma

ma operator * (const ma &rhs) const

};ma matrixpow(ma a, int p)

return base;

}int main()

if(n == 8)

n >>= 1;

ma a;

a.m[1][1] = 3; a.m[1][2] = - 1;

a.m[2][1] = 1; a.m[2][2] = 0;

a = matrixpow(a, n - 5);

printf("%d\n", add(add(mul(13, a.m[1][1]), mul(5, a.m[1][2])), -(n - 1)));

}return 0;}/*

78910

0*/

網域名稱 企業品牌的第二戰場

隨著企業對網路營銷認識的加深,尤其是企業越來越看重品牌和形象建設的今天,網域名稱作為企業在網際網路上的入口,被賦予了眾多意義。乙個好網域名稱絕不僅僅是乙個簡單的 那麼簡單,它所給企業帶來的好處,是企業遠遠想不到的。自2010年以來,各大企業巨頭頻頻花巨資更換網域名稱,更換最頻繁的當屬電商行業,天貓 ...

開闢反流氓軟體第二戰場

最近比較煩,被一幫號稱從良的惡意軟體製作者襲擾,對方要求把自己從毒霸的清除名單裡去掉。還經常會被拉來拉去,開什麼反流氓軟體的討論會。再看轟轟烈烈的反病毒軟體運動,已經明顯被加上了各種商業標籤。而業界觀望和網民期待的流氓 惡意 軟體判斷標準,一經出台就備受爭議。很多人發現流氓 惡意 軟體製造者,或者曾...

開闢反流氓軟體第二戰場

最近比較煩,被一幫號稱從良的惡意軟體製作者襲擾,對方要求把自己從毒霸的清除名單裡去掉。還經常會被拉來拉去,開什麼反流氓軟體的討論會。再看轟轟烈烈的反病毒軟體運動,已經明顯被加上了各種商業標籤。而業界觀望和網民期待的流氓 惡意 軟體判斷標準,一經出台就備受爭議。很多人發現流氓 惡意 軟體製造者,或者曾...