原创 乘法逆元(除法取模)

費馬小定理:對於素數 M 任意不是 M 的倍數的 b,都有:b ^ (M-1) = 1 (mod M) 於是可以拆成:b*b^(M-2)=1(mod M) 於是:a/b=a/b*(b * b ^ (M-2

原创 筆記——最小生成樹

#include <stdio.h> #include <algorithm> using namespace std; #define MAXN 50000//最大頂點數 #define MAXM 10

原创 筆記--歐拉函數

/*歐拉函數*/ /* eular(p^k)=p^k-p^(k-1)=(p-1)*p^(k-1) eular(p)=p-1 */ /* eular(m*n)=eular(m)*eular(n) gcd(m

原创 筆記——二分查找

/* 參考:http://blog.csdn.net/mobius_strip/article/details/39253333 /* #include <stdio.h> #include <algor

原创 刷題——Six Degrees of Cowvin Bacon POJ - 2139

/* n頭牛,m場電影,每場電影有num頭牛出現,這num頭牛之間的距離爲1 如果兩隻牛從未一起出現過,但它們都與第三隻牛一起出現,那麼他們之間的距離爲2 求某頭牛到其它牛的距離的平均值的最小值,距離要擴

原创 筆記——cin快速讀寫

/*tie是將兩個stream綁定的函數,空參數的話返回當前的輸出流指針。 sync_with_stdio這個函數是一個“是否兼容stdio”的開關,C++爲了兼容C,保證程序在使用了std::print

原创 刷題—— hdu 6181 Two Paths

/* 裸的次短路 不斷更新v->u的次短路,直到v->u的次短路只比最短路小 */ #include <vector> #include <iostream> #include <stdio.h> #in

原创 刷題——POJ 2395 Out of Hay

/* 奶牛沒草吃,有n個農場,從1號農場出發走遍所有的農場弄草 路上要喝水,每個農場都可以補充水,路上消耗的水是兩農場之間的距離 求在總路程最短的情況下所需要攜帶的最大水量 最小生成樹,記錄最大加入路徑

原创 刷題——Wormholes POJ - 3259

/* n個農場,有雙向的正常道路,和可以回溯的單向道路,問他是否能回到過去 判定有無負圈 */ #include <stdio.h> #include <string.h> struct node{int

原创 刷題——Silver Cow Party POJ - 3268

/* n個點,m條有向邊,起點爲x,問從其他點到x點,再從x點回去的最小路徑的最大值 正向單源最短路,反向單源最短路 */ #include <stdio.h> #include <vector> usi