floyd
SC.ldxcaicai
我很菜=_=
展开
-
2018.09.11 bzoj2208: [Jsoi2010]连通数(bitset+floyd)
传送门 听说正解是缩点+dfs? 直接bitset优化floyd传递闭包就行了。(尽管时间复杂度是假的O(n3/32)O(n3/32)O(n^3/32)) 代码: #include<bits/stdc++.h> using namespace std; bitset<2005>f[2005]; int ans=0,n; char s[2005]; int main(...原创 2018-09-11 20:43:34 · 179 阅读 · 0 评论 -
2018.09.15 hdu1599find the mincost route(floyd求最小环)
传送门 floyd求最小环的板子题目。 就是枚举两个相邻的点求最小环就行了。 代码: #include<bits/stdc++.h> #define inf 0x3f3f3f3f3f3f #define ll long long using namespace std; inline ll read(){ ll ans=0; char ch=getchar(...原创 2018-09-15 17:29:32 · 477 阅读 · 0 评论 -
2018.09.15 poj1734Sightseeing trip(floyd求最小环)
跟hdu1599差不多.。 只是需要输出方案。 这个可以递归求解。 代码: #include<iostream> #include<cstdio> #include<cstring> #include<cctype> #define inf 50005 using namespace std; inline int read(){ ...原创 2018-09-15 17:31:31 · 121 阅读 · 0 评论 -
2018.11.09 bzoj1706: relays 奶牛接力跑(倍增+floyd)
传送门 倍增+floyd板子题。 先列出状态fi,j,kf_{i,j,k}fi,j,k表示经过iii条边从jjj到kkk的最短路。 然后发现可以用fi−1,j,kf_{i-1,j,k}fi−1,j,k和f1,j,kf_{1,j,k}f1,j,k来转移出fi,j,kf_{i,j,k}fi,j,k。 由于floydfloydfloyd可以看做是矩阵乘法,因此可以用倍增/快速幂优化矩阵转移。 代...原创 2018-11-09 21:15:36 · 215 阅读 · 0 评论 -
2018.11.09 bzoj2165: 大楼(倍增+floyd)
传送门 先倍增出iii使得2i2^i2i时间时刚好有每个点能够到mmm层及以上。 然后就可以用floyd+floyd+floyd+倍增求出刚好不超过mmm层的时间,最后再补一层就行了。 代码: #pragma GCC optimize(2) #include<bits/stdc++.h> using namespace std; typedef long long ll; inline...原创 2018-11-09 21:19:00 · 357 阅读 · 0 评论 -
2018.11.09 bzoj4773: 负环(倍增+floyd)
传送门 跟上一道题差不多。 考虑如果环上点的个数跟最短路长度有单调性那么可以直接上倍增+floyd。 然而并没有什么单调性。 于是我们最开始给每个点初始化一个长度为0的自环,于是就有单调性了。 代码: #pragma GCC optimize(2) #include<bits/stdc++.h> using namespace std; typedef long long ll; in...原创 2018-11-09 21:22:46 · 171 阅读 · 0 评论