随笔分类 - UVA
摘要:思路 发现模板串最多只有一个*,所以考虑对于一个含有*的模板串,相当于链接了两个不含*的模板串。 所以我们先把所有的串转换为不含*的模板串,然后两两判断是否可以连边(因为只能有一个*,所以判断依据就是 $\operatorname{popcount}(u \operatorname{xor} v)=
阅读全文
摘要:思路 问题转化为了在一张 dag 图上求出最小路径覆盖,见洛谷P2764,题解。 只需要用二分图匹配,每一次连接了一对匹配,相当于合并了两条路径(单个点也认为是路径),所以要让路径总数最小,就要让匹配的数量最大,由于是路径,所以每个点的入点和出点都最多只能连两条边。 代码 #include<bits
阅读全文
摘要:思路 会发现建完二分图之后,就是求哪些边一定在二分图的完全匹配当中的。 那就只需要求出这条边如果去掉,还能不能跑出完全匹配,如果不能了,那么这条边就一定在完全匹配中,否则就不在。 代码 #include<bits/stdc++.h> using namespace std;typedef long
阅读全文
摘要:思路 发现可以先建出一张图,每个节点表示每个订单,之间的连边 表示同一辆出租车能否先完成 号订单,再去完成 号订单。 这样,问题转化为了在一张 dag 图上求出最小路径覆盖,见洛谷P2764,题解。 只需要用二分图匹配,每一次连接了一对匹配,相当于合并了两条路径(单
阅读全文