bzoj 4887 可樂(Floyd 快速冪)

2021-08-17 23:14:21 字數 966 閱讀 5775

傳送門biu~

可以建乙個虛擬節點表示自爆,虛擬節點不連出邊。計算矩陣t次冪後1到每個節點的方案數和。

#include

using

namespace

std;

const

int mod=2017;

int n,m,t,ans;

struct matrix

}base;

matrix ksm(matrix p,int n)

return re;

}int main()

scanf("%d",&t);

matrix an=ksm(base,t);

for(int i=1;i<=n+1;++i)

(ans+=an.a[1][i])%=mod;

printf("%d\n",ans%mod);

return

0;}

也可以不建虛擬節點,直接維護0~t次冪的字首和。

#include

using

namespace

std;

const

int mod=2017;

int n,m,t,ans;

struct matrix

matrix operator+(const matrix&r)const

}base;

matrix ksm(matrix p,int n)

return re;

}int main()

scanf("%d",&t);

matrix an=ksm(base,t);

for(int i=1;i<=n;++i)

(ans+=an.a[1][i])%=mod;

printf("%d\n",(ans+1)%mod);

return

0;}

bzoj 1612 floyd傳遞閉包

題意 n個牛,給出m場比賽的比賽結果 前面的贏後面的 能力強的總是贏能力弱的,求最多有幾頭牛能確定能力排名 第一眼看題再看資料範圍,第一反應不是網路流就是建有向邊搞圖.當乙個牛的能力可以確定時,當且僅當能贏它的牛加上輸給它的牛有n 1頭 可以發現,贏和輸的資訊是可以傳遞的 即當i能贏k且k能贏j時,...

BZOJ1202 狡猾的商人 Floyd)

看了一眼題意,發現floyd可以做,其實就是判斷是否滿足邊相加的關係成立。需要注意的是,有可能有這樣的資料,3 2 1 2 10 3 3 15 這個也是true的,也就是說,當邊不滿足判斷條件的時候,可以認為補充上一些邊。或者說,只有發現兩邊相加不等於第三邊的時候,才算false。這道題也可以用帶權...

BZOJ 1027 合金 計算幾何,Floyd判環

description 某公司加工一種由鐵 鋁 錫組成的合金。他們的工作很簡單。首先進口一些鐵鋁錫合金原材料,不同種類的 原材料中鐵鋁錫的比重不同。然後,將每種原材料取出一定量,經過融解 混合,得到新的合金。新的合金的鐵鋁 錫比重為使用者所需要的比重。現在,使用者給出了n種他們需要的合金,以及每種合...