太空飛行計畫問題

2021-09-07 21:59:44 字數 1400 閱讀 6835

網路流最小費用問題

一開始看這個人的部落格:

寫了4天了,還是沒能寫出自己的**。。。

後面面還有在這個oj上ac了的**。

照著這個人的**打,還是沒能想明白。。這個**和這個oj上的不同,是簡化問題了的。只求最大收益

照著打的**:

#include#include#include#include#define inf 999999

using namespace std;

//分別為殘餘網路,返回值,當前列舉的點,當前點的前驅,當前點到匯點的距離,距離為i的點數

int a[500][500],fh[500],now[500],pre[500],dis[500],sumd[500];

int n,m,ans; //儀器數,實驗數,收入

queueq;

void cl()

void input()

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

n = m+n+1; //匯聚點更改

return ;

}void sap()

int sap()

gap[src] = n;

x = pre[src] = src;

while (dis[src] < n)

aug = oo;

}break;}}

if (flag)

int tmp = n;

for (int j = first[x]; j != -1; j = next[j])

}if ((--gap[dis[x]]) == 0)

gap[dis[x] = tmp + 1]++;

x = pre[x];

}return flow;

}void out(vectorres)

printf("%d", res[i]);

}putchar('\n');

}void dfs(int x)

for (i = first[x]; i != -1; i = next[i])

}}int main()

for (; j < len && isdigit(str[j]); j++);}

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

ans = 0;

for (i = 1; i <= m; i++)

}n = des + 1;

ans -= sap();

test.clear();

for (i = first[src]; i != -1; i = next[i])}}

out(test);

printf("%d\n", ans);

}return 0;

}

太空飛行計畫問題

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

太空飛行計畫問題

跟拍照幾乎是重題。在輸出部分,若最後一次bfs還能到這個點,則可以輸出。只要有乙個點可以從源點過得去,就可以通過正或反流到達所有經過的點。但是我不明白若把所有專案都割掉了,那不就嘎嘎了。這裡也求廣大讀者說出自己的理解。看 includeusing namespace std define inf 1...

太空飛行計畫

太空飛行計畫 題目描述 輸入格式 2209.in 檔案第1行有2 個正整數m和 n。m是實驗數,n是儀器數。接下來的 m行,每行是乙個實驗的有關資料。第乙個數贊助商同意支付該實驗的費用 接著是該實驗需要用到的若干儀器的編號。最後一行的 n個數是配置每個儀器的費用。1 n,m 50 輸出格式 2209...