cf 212a 資料範圍放大版。
首先容易發現每個點的 minmax 差不會超過 1
11,且差為 1
11 當且僅當度數不是 t
tt 的倍數。
換言之,只要保證每個點 i
ii 分給 j
jj 的都在 ⌊de
g/t⌋
\lfloor deg/t\rfloor
⌊deg/t
⌋ 和 ⌈de
g/t⌉
\lceil deg/t\rceil
⌈deg/t
⌉ 即可。證明考慮歸納即可。
那麼第乙個思路就很顯然了,考慮歸納,我們先決定哪些邊給到 t
tt,然後 −−t
--t−−
t 考慮下乙個問題,顯然可以直接網路流。
還有乙個好點的思路,考慮二分圖邊染色,我們把每個點拆成若干個點,加邊的同時利用增廣保證沒有重複顏色即可。
**1(網路流):
#include
#define ll long long
#define re register
#define cs const
using std::cerr;
using std::cout;
cs int n=
6e2+
7,m=
1e6+7;
int deg[n]
;int bel[m]
,rec[m]
;int a,b,m,k;
int s,t;
int el[n]
,nx[m]
,to[m]
,cap[m]
,ec=1;
void
adde
(int u,
int v,
int c)
int lev[n]
,gap[n]
,cur[n]
,finished;
void
bfs(
)}finished=lev[s]==0
;}intdfs
(int u,
int flow)if(
!--gap[lev[u]
])finished=
true
;++gap[
++lev[u]
];cur[u]
=el[u]
;return ans;
}int vs[n]
,idx;
bool
fix_flow
(int u)
for(
int re e=el[u]
;e;e=nx[e])if
(!bel[e]
&&rec[e]
==cap[e]
&&vs[to[e]
]!=idx)
}return
false;}
void
flow()
}void
main()
for(
int re i=
1;i<=a;
++i)
adde
(s,i,0)
;for
(int re j=
1;j<=b;
++j)
adde
(j+a,t,0)
;for
(;k;
--k)
}for
(int re i=
1;i<=m;
++i)
cout<<<
" ";
}inline
void
file()
signed
main()
**2(二分圖邊染色):
#include
#define ll long long
#define re register
#define cs const
using std::cerr;
using std::cout;
cs int n=
3e2+
7,m=
1e5+7;
int c0,c1;
int nx[2]
[n+n]
[n];
void
dfs(
int o,
int x,
int y,
int cx,
int cy)
dfs(o^
1,y,to,cy,cx);}
int a,b,m,k,ans[m]
;int sz[2]
[n],id[2]
[n];
int eid[n+n]
[n+n]
;void
main()
else
dfs(
0,u,v,cu,cv);}
for(
int re i=
1;i<=c0;
++i)
for(
int re c=
1;c<=k;
++c)
if(nx[0]
[i][c]
)ans[eid[i]
[nx[0]
[i][c]]]
=c;for
(int re i=
1;i<=m;
++i)
cout<<<
" ";
}inline
void
file()
signed
main()
17 10 20題目泛做
終於停課了 於是來補一發題解 hzwers模擬t1 逗比三角形 題意 給若干個三角形的三邊長然後問如何把這些三角形放在乙個寬度l ll高度無限的矩形框裡面使得這些三角形有一條邊緊貼矩形底邊的同時在矩形框裡面覆蓋的面積最大,並算出這個面積 分析 這非常結論題 顯然我們把三角形裡面最短的那條邊放在下面是...
17 10 24題目泛做
題意 求二維和與rmq,保證每次查詢的區間長寬不超過整個矩陣長寬的一半 分析 二維和沒難度,二維rmq這裡因為資料有問題 只好開short水過,同時順便加上了連續訪問的黑科技然後卡了過去 不過正解是經典的思想,就是一種簡單的變形 但好難寫啊qaq 我們考慮f i,j,k 表示以 i j 為左上角,邊...
CS Academy 題目泛做
乙個神犇同學向我推薦了這個oj。這個oj上的題目都是挺經典的。資料 標程 題解都有,已經是很方便了。出於強迫症,下面的題目按照字典序排列。太簡單的題大家應該都能一看就會,就直接略了。這個網經常崩,做起來好麻煩,所以這個坑先停了吧 addition 略。a game 顯然如果當前還有b就不會去選a。也...