摘要:
orz JT真是太神辣 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 using namespace std; 8 9 void setIO(const string& s) {10 freopen((s + ".i... 阅读全文
摘要:
一开始考虑所有边都是单独的一条路径然后尽量多的合并 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 using namespace std; 8 9 void setIO(const string& s) {10 fr... 阅读全文
摘要:
这么sb的题本来想练练手记过就是过不了拍半天也没问题留坑哪天有空了去linux下面试试 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 using namespace std; 8 template bool r... 阅读全文
摘要:
马题解传送门http://www.cnblogs.com/Tunix/p/4412201.html#include#include#include#include#includeusing namespace std;void setIO(const string& s) { freopen(... 阅读全文
摘要:
无聊来写了下一开始发现树高是O(n)的,然后就MLE了,进去看了下发现没有重构!看了半天发现调用错了函数然后进去又发现不满足sz = ch[0]->sz + ch[1]->sz + 1然而全都是maintain过的啊发现后来受某个代码的影响返回重建节点时把引用去掉了这样这个点的父亲的信息就不对了又仔... 阅读全文
摘要:
orz题解戳这里https://www.byvoid.com/blog/noi-2008-employee/暂时只能理解下由于不等式不能作差,加上Yi变成等式作差作差后每个X最多出现一次,这样就可以考虑两个之间的影响了(通过连边,这里流出去这么多那里就要流进来这么对,对应一正一负) 1 #incl... 阅读全文
摘要:
一、最大权闭合图 对于一个图(V, E)由点集V和有向边集E组成,每个点有一定权值,对于一个合法子集,若有一条有向边(u,v)并且u在子集中,则v也必须在子集中,求子集中所有元素权值和最大的子集 分析:考虑每个点有两种状况,选和不选,所以考虑最小割,但是要求最大费用; 先假设取了所有正权点,从原点向 阅读全文
摘要:
要分成两坨对吧。。 所以显然最小割但是不兹辞啊。。最小割是最小的啊 求最大费用怎么玩啊那咱们就把所有费用都加起来,减掉一个最小的呗但是两个属于不同集合的点贡献的价值是负的啊网络流怎么跑负的啊那咱就交换一下呗原图是二分图啊,把另一部分与S和T连边的流量换一下就好啦。注意哦 n和m可能为1 所以累加C的... 阅读全文
摘要:
看到黄学长的做法觉得有点疑问网上搜了下发现确实有问题看到PoPoQQQ大爷的啦 http://blog.csdn.net/popoqqq/article/details/41594921然后怎么办呢得把每个出口拆成很多个时刻 每个时刻到t建边 1 #include 2 #include 3 #... 阅读全文
摘要:
题很傻TAT但是我的转移很蛋疼。。。这么蛋疼的转移能一次写对还是佩服自己QAQ。。记一下这蛋疼的代码(看到黄学长O(n·(a^m)·k)的没写对,貌似还有O(n^m*k)的写法。 1 #include 2 #include 3 #include 4 #include 5 #include ... 阅读全文