太空飛行計畫問題 網路流24題 最小割

2021-09-12 20:21:54 字數 1952 閱讀 6103

思路:很多人應該是不解為什麼最後返回得到的不是那些正向邊"s -> 實驗"有流量的邊?為什麼是那些所謂的還能夠bfs()搜尋下去到的節點,這就是反映出來的割點的關係了,一開始不懂,一直wa,都是因為直接輸出了正向權大於0的那些實驗的,然後再以這些實驗去找尋對應的器材,但是這樣做顯然還是不符合的,我們可以考慮成,如果要選實驗,那麼顯然就不能割實驗,得去割器材,反之,如果割了實驗,就說明我們不選實驗了,同時這些器材也不會在被bfs()到,不然選了實驗之後,可以發現,最後bfs()的時候,deep會停留在割的點。

#include #include #include #include #include #include #include #include #include #include #include #include #define lowbit(x) ( x&(-x) )

#define pi 3.141592653589793

#define e 2.718281828459045

#define inf 0x3f3f3f3f

#define half (l + r)>>1

#define lsn rt<<1

#define rsn rt<<1|1

#define lson lsn, l, mid

#define rson rsn, mid+1, r

#define ql lson, ql, qr

#define qr rson, ql, qr

#define myself rt, l, r

using namespace std;

typedef unsigned long long ull;

typedef long long ll;

const int maxe = 2e5 + 5e4 + 7;

const int maxn = 107;

const int s = 0;

bool flag, used[maxn];;

inline int read()

if (c == '\r' || c == '\n') flag = true;

return r;

}int m, n, head[maxn], cnt, w[maxn], tot, t;

struct eddge

}edge[maxe];

inline void addeddge(int u, int v, int flow)

struct node

a[55];

int deep[maxn], cur[maxn];

bool bfs()}}

return deep[t];

}int dfs(int u, int flow)}}

return 0;

}int dinic()

return ans;

}bool check(int ti)

int ans[maxn], num;

void solve()

}if(tmp < tot) printf("\n");

memset(used, false, sizeof(used));

for(int i=1; i<=num; i++) for(int j=1; j<=a[ans[i]].tool; j++) used[a[ans[i]].need[j] - m] = true;

for(int i=1; i<=n; i++) if(used[i]) printf("%d ", i);

if(tmp < tot) printf("\n");

printf("%d\n", tot - tmp);

}inline void init()

int main()

}for(int i=1; i<=n; i++)

solve();

return 0;

}

網路流24題 太空飛行計畫問題

網路流24題大多需要spj,所以需要乙個有spj的oj,本系列 均在www.oj.swust.edu.cn測試通過 最大權閉合子圖裸題,先將所有收益加起來,源點向每個方案連線一條收益的流,每個方案向對應需要的儀器連一條inf,每個儀器向匯點連一條花費的流。輸出方案只需要在最後的阻塞流中看還剩哪幾個點...

網路流24題 太空飛行計畫問題

已確定了乙個可供選擇的實驗集合e 和實驗需要使用的全部儀器的集合i 實驗ej需要用到的儀器是i的子集rj i。配置儀器ik的費用為ck美元。實驗ej的贊助商已同意為該實驗結果支付pj美元。w教授的任務是找出乙個有效演算法,確定在一次太空飛行中要進行哪些實驗並因此而配置哪些儀器才能使太空飛行的淨收益最...

太空飛行計畫問題 網路流24題

w 教授正在為國家航天中心計畫一系列的太空飛行。每次太空飛行可進行一系列商業性實驗而獲取利潤。現已確定了乙個可供選擇的實驗集合e 和進行這些實驗需要使用的全部儀器的集合i 實驗ej需要用到的儀器是i的子集rj i。配置儀器ik的費用為ck美元。實驗ej的贊助商已同意為該實驗結果支付pj美元。w教授的...