刷題 洛谷 P4209 學習小組

2022-05-25 13:12:06 字數 1793 閱讀 8269

共有n個學生,m個學習小組,每個學生只願意參加其中的一些學習小組,且乙個學生最多參加k個學習小組。每個學生參加學習小組財務處都收一定的手續費,不同的學習小組有不同的手續費。若有a個學生參加第i個學習小組,財務處支付獎勵 \(c_i \times a^2\) 元。在參與學生(而不是每個學習小組的人數總和)盡量多的情況下,求財務處最少要支出多少錢。

輸入格式:

輸入有若干行,第一行有三個用空格隔開的正整數n、m、k。接下來的一行有m個正整數,表示每個ci。第三行有m個正整數,表示參加每個學習小組需要交的手續費fi。再接下來有乙個n行m列的矩陣,表若第i行j列的數字是1,則表示第i個學生願意參加第j個學習小組,若為0,則為不願意。

輸出格式:

輸出只有乙個整數,為最小的支出。

輸入樣例#1:

3 3 1

1 2 3

3 2 1

111111

111輸出樣例#1:

-2100%的資料,0<n≤100,0<m≤90,0<k≤m,0< \(c_i\)​ ≤10,0< \(f_i\)​ ≤100。

源點向所有學生連邊,容量為 \(k\) ,費用為 \(0\) ,代表最多參加 \(k\) 個社團

所有學生向匯點連邊,容量為 \(k-1\) ,費用為 \(0\) ,代表學生至少要參加乙個社團

所有學生向能參加的社團連邊,容量為 \(1\) ,費用為需要繳納的費用的相反數

所有社團向源點連邊,連 \(n\) 條邊,第 \(i\) 條邊代表有 \(i\) 個學生加入了該社團,容量為 \(1\) ,費用為 \(c \times (2i-1)\) ,因為 \(i^2-(i-1)^2=2i-1\) ,這是第 \(i\) 個人加入後要多給的費用

然後跑費用流即可

#include#define ui unsigned int

#define ll long long

#define db double

#define ld long double

#define ull unsigned long long

const int maxn=200+10,maxm=maxn*maxn+10,inf=0x3f3f3f3f;

int n,m,k,e=1,s,t,clk,answas,beg[maxn],cur[maxn],level[maxn],vis[maxn],p[maxn],c[maxn],f[maxn],to[maxm<<1],nex[maxm<<1],cap[maxm<<1],was[maxm<<1];

std::queueq;

templateinline void read(t &x)

templateinline void write(t x,char ch='\0')

templateinline void chkmin(t &x,t y)

templateinline t min(t x,t y)

inline void insert(int x,int y,int z,int w)

inline bool bfs()

} return level[t]!=inf;

}inline int dfs(int x,int maxflow)

return res;

}inline void mcmf()

int main()

mcmf();

write(answas,'\n');

return 0;

}

洛谷刷題 P1003 鋪地毯

為了準備乙個獨特的頒獎典禮,組織者在會場的一片矩形區域 可看做是平面直角座標系的第一象限 鋪上一些矩形地毯。一共有 n 張地毯,編號從 1 到 n。現在將這些地毯按照編號從小到大的順序平行於座標軸先後鋪設,後鋪的地毯覆蓋在前面已經鋪好的地毯之上。地毯鋪設完成後,組織者想知道覆蓋地面某個點的最上面的那...

刷題 洛谷 P4142 洞穴遇險

zrq在洞穴中準備採集礦物的時候遇險了!洞穴要塌了!整個洞穴是乙個 n n 的方格圖,每個格仔形如 x,y 1 le x,y le n 其中 x 表示從上到下的行數,y 表示從左到右的列數。1,1 在左上角,1,n 在右上角,n,1 在左下角,n,n 在右下角。滿足 x y 為奇數格仔的有乙個不穩定...

洛谷NOIP刷題 P1013 進製位

題目描述 著名科學家盧斯為了檢查學生對進製的理解,他給出了如下的一張加法表,表中的字母代表數字。例如 l l ll l l,l k kl k k,l v vl v v,l e el e e k l kk l k,k k vk k v,k v ek v e,k e klk e kl e e kve e...