題解 洛谷 P6054 RC 02 開門大吉

2022-09-18 15:33:15 字數 2225 閱讀 7718

一套題裡面的各個題是假的,可以處理出 \(w_\) 為第 \(i\) 個人選第 \(j\) 套題的期望得分。

對於每個人來講,有 \(m\) 種選擇套題,只能選擇乙個套題,要求價值最小,於是想到乙個最小割的經典建圖:對於每個人,從 \(s\) 到 \(t\) 連一條長度為 \(m\) 的鏈,邊的流量依次為這個人選擇第 \(i\) 套題的期望得分。

考慮怎樣描述限制,若割了 \(j\) 的第 \(l\) 條邊,那麼就不能割 \(i\) 的前 \((j+k-1)\) 條邊。

那麼就從 \(j\) 的第 \(l\) 條邊的起點,向 \(i\) 的前 \((j+k-1)\) 條邊的終點連一條 \(+\infty\).

但是要注意到,限制和限制之間是有傳遞性的,假若有 \(1\) 比 \(2\) 大 \(1\),\(2\) 比 \(3\) 大 \(1\),那麼還需要滿足 \(1\) 比 \(3\) 大 \(2\).

將一開始 \(s\) 到 \(t\) 的若干條長度為 \(m\) 的鏈,連一條反向的流量為 \(+\infty\) 的邊,這樣限制和限制組成的限制也被滿足了。

最小割 建圖模型:每個位置 \(n\) 選 \(1\),求最小代價,\(s\) 到 \(t\) 連若干條長度為 \(n\),流量依次為每種選擇的代價,求最小割。

#include#include#include#include#include#define pb emplace_back

#define mp std::make_pair

#define fi first

#define se second

typedef long long ll;

typedef long double ld;

typedef unsigned long long ull;

typedef std::pairpii;

typedef std::vectorvi;

const ll mod = 998244353;

ll add(ll x, ll y)

ll mul(ll x, ll y)

ll mod(ll x)

ll cadd(ll &x, ll y)

ll cmul(ll &x, ll y)

template t max(t x, t y)

templatet max(t x, t2 ...y)

template t min(t x, t y)

templatet min(t x, t2 ...y)

template t cmax(t &x, t y)

template t cmin(t &x, t y)

template t &read(t &r)

templatevoid read(t1 &x, t2& ...y)

const int n = 100010;

const int m = 500010;

const ll inf = 0x7fffffffffffffff;

const ld eps = 1e-10;

int n, m, p, y, c[n], pos[81][81];

ld f[81][81][81], w[81][81];

int tot, s, t, ent = 1, head[n], cur[n], dis[n];

struct edge e[m];

inline void add(int x, int y, ld z)

bool bfs()

} }return dis[t] != -1;

}bool qwqbfs()

} }return dis[t] != -1;

}ld dfs(int x, ld lim)

} return flow;

}ld dinic()

void solve()

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

for(int j = 1; j <= m; ++j)

} s = ++tot; t = ++tot;

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

} for(int o = 1; o <= y; ++o)

if(qwqbfs())

double qwq = dinic();

printf("%lf\n", qwq);

}signed main()

洛谷 P1101 題解

這道題可以用深搜 回溯 來寫,相信大部分人都是這麼想的,但是有些人可能在一些地方饒了半天,所以這裡就貼一下我的思路,個人覺得自己的很好懂,除了tx和ty那裡,但是tx和ty的那種用法對於輸出路徑的題目一般很實用 這個算是比較簡單的吧,題目裡給出了具體要找的字串,我們要做的就是對它進行8個方向的搜尋,...

洛谷 P1169 題解

請你在乙個黑白矩陣中選出乙個長方形 含正方形 和正方形的子矩陣,使得所有相鄰的點顏色不一樣。矩陣大小 兩條邊都 2000 2000 2 000輸入 3 31 0 1 0 1 0 1 0 0輸出4 6解釋給定矩陣 正方形 長方形 我的控制台是萌萌噠 ffc0cb粉色 乙個小技巧 如果您的控制台是像我的...

題解 洛谷 P3332

題目描述 權值線段樹套線段樹板子題 首先觀察題目,判斷為二維偏序問題 操作1為區間修改,所以一定是外部線段樹維護權值,內部線段樹維護所在區間,否則時間複雜度 qwq 為方便查詢,雜湊時我採用雜湊每個數的相反數的方法將求第k大轉換為求第k小 詢問可以直接想到的做法就是二分答案,查詢1 ans在區間內的...