一名苦逼的OIer,想成为ACMer

Iowa_Battleship

2018年10月17日

洛谷1608 路径统计

摘要: "原题链接" 模板题。 比起最短路计数( "题解" )这题多了边权,且计数的条件有所不同,需要去重边(取权值最小的),然后上$dijkstra$或$SPFA$计数即可。 这里我是用的$dijkstra$。 阅读全文

posted @ 2018-10-17 19:55 Iowa_Battleship 阅读(100) 评论(0) 推荐(0) 编辑

洛谷1144 最短路计数

摘要: "原题链接" 模板题。 由于此题特殊,边权均为$1$,所以可以直接跑$BFS$,每个点的最短路就是该点在$BFS$搜索树中的深度,某个点的最短路计数则用上一层中能到达该点的计数来更新即可。 cpp include using namespace std; const int N = 1e6 + 10 阅读全文

posted @ 2018-10-17 15:00 Iowa_Battleship 阅读(105) 评论(0) 推荐(0) 编辑

BZOJ1059或洛谷1129 [ZJOI2007]矩阵游戏

摘要: "BZOJ原题链接" "洛谷原题链接" 通过手算几组例子后,很容易发现,同一列的$1$永远在这一列,且这些$1$有且仅有一个能产生贡献,行同理。 所以我们可以只考虑交换列,使得每一行都能匹配一个$1$,且每一行匹配的$1$没有重列的,最后交换行排序下即可达到目标。 解决这个问题就不难了,对于一个格子 阅读全文

posted @ 2018-10-17 13:45 Iowa_Battleship 阅读(91) 评论(0) 推荐(0) 编辑

洛谷1894 [USACO4.2]完美的牛栏The Perfect Stall

摘要: "原题链接" 二分图最大匹配板子。 每个奶牛向它愿意去的牛棚连边,跑二分图最大匹配即可。 这里我用的是匈牙利算法。 cpp include include using namespace std; const int N = 410; const int M = N N; int fi[N], ne 阅读全文

posted @ 2018-10-17 12:40 Iowa_Battleship 阅读(91) 评论(0) 推荐(0) 编辑

洛谷2417 课程

摘要: "原题链接" 对于每一个课堂,向能够来这堂课的学生连边,然后跑二分图最大匹配,判断是否是完全匹配即可。 这里我是用的匈牙利算法。 cpp include include using namespace std; const int N = 1e5 + 10; int fi[N], di[N], ne 阅读全文

posted @ 2018-10-17 12:18 Iowa_Battleship 阅读(122) 评论(0) 推荐(0) 编辑

导航