BZOJ2245 SDOI2011 工作安排

2021-09-09 02:36:57 字數 1010 閱讀 4428

題意:自行腦補,看懂分段函式是什麼即可。

思路:顯然是最小費用最大流。

對於每乙個工作人員的每一段,從原點到工作人員相應的點連一條費用與流量與這一段其相適應的邊。

對於每乙個部件。從其相應的點到匯點連一條流量為須要的數目,費用為0的邊。

然後就能夠出解了。

建模還是非常顯然的。

還有這題我寫spfa的多路增廣tle了,反倒是不加上多路增廣能過。

不知道為什麼。。。

code:

#include #include #include #include #include #include using namespace std;

#define n 260

#define m 260

#define inf 0x3f3f3f3f

queueq;

struct solver

void addedge(int a, int b, int _flow, int _cost)

void make(int a, int b, int _flow, int _cost)

bool spfa(int s, int t) }}

} return dis[t] != 0x3f3f3f3f;

} long long mincost(int s, int t)

return res;

}}g;

int s[m][n];

int num[n], size[m], ins[m][7], w[m][7], id;

int main()

g.reset();

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

g.make(i, n + m + 1, num[i], 0);

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

printf("%lld", g.mincost(0, n + m + 1));

return 0;

}

bzoj2245 SDOI2011 工作安排

description 你的公司接到了一批訂單。訂單要求你的公司提供n類產品,產品被編號為1 n,其中第i類產品共需要ci件。公司共有m名員工,員工被編號為1 m員工能夠製造的產品種類有所區別。一件產品必須完整地由一名員工製造,不可以由某名員工製造一部分配件後,再轉交給另外一名員工繼續進行製造。我們...

BZOJ 2245 SDOI2011 工作安排

你的公司接到了一批訂單。訂單要求你的公司提供n類產品,產品被編號為1 n,其中第i類產品共需要ci 件。公司共有m名員工,員工被編號為1 m員工能夠製造的產品種類有所區別。一件產品必須完整地由一名員工製造,不可以由某名員工製造一部分配件後,再轉交給另外一名員工繼續進行製造。我們用乙個由0和1組成的m...

bzoj2245 SDOI2011 工作安排

description 你的公司接到了一批訂單。訂單要求你的公司提供n類產品,產品被編號為1 n,其中第i類產品共需要ci件。公司共有m名員工,員工被編號為1 m員工能夠製造的產品種類有所區別。一件產品必須完整地由一名員工製造,不可以由某名員工製造一部分配件後,再轉交給另外一名員工繼續進行製造。我們...