摘要: 横的联通快为入,竖的为出。 样例的图就像这样: S->a1,a2,a3,a4,a5 a1->2,3,4 a2->5 a3->7,8 a4->9,10 a5->12 5,9->b1 2->b2 10->b3 3,7->b4 4,8,12->b5 代码如下: #include<bits/stdc++.h 阅读全文
posted @ 2020-03-06 22:41 syzf2222 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 努力刷网络流找感觉ing…… 这其实是一个费用流,拆点,流量为1,费用为val。 求其最大费用流,可以转化为边权相反,求最小费用流的相反数。 看代码: #include<bits/stdc++.h> using namespace std; #define inf 1e9 int val[100][ 阅读全文
posted @ 2020-03-06 21:46 syzf2222 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 个人认为思维难度比较大。 看到这题,我们要想办法将其转化为最小割。 考虑到割x,y,z都能完成任务,我们将其并联,割掉其中任意一边都行。 因为割得是权,于是以权为点,而不是以节点为点。 并且要拆点。 超级源点向x连边,x向y的入口连边,y的入口向出口连边,y的出口向z连边,z向超级汇点连边。 看代码 阅读全文
posted @ 2020-03-06 20:46 syzf2222 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 发现好像只记一行没什么太大的用了。怎么办…… 一行不行记两行呗!m=10的情况也只有60种可行方案,空间大大的有。 注意不是累加是取max…… 看代码: #include<bits/stdc++.h> using namespace std; int f[105][65][65]; int can[ 阅读全文
posted @ 2020-03-06 11:05 syzf2222 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 传说这种题叫什么旅行商问题? 这题卡记搜和暴搜,注意一下…… #include<bits/stdc++.h> using namespace std; const int maxn=20; int n,vis[maxn]; double x[maxn],y[maxn],ans,dist[maxn][ 阅读全文
posted @ 2020-03-06 00:22 syzf2222 阅读(168) 评论(0) 推荐(0) 编辑