题意分析
由于要么学文科要么学理科
我们考虑用最小割解决问题
关键是怎么建图网络流的唯二难点
首先我们考虑没有集体加成的时候
由\(S\)向\((i,j)\)建边权为\(art_{i,j}\)的边
然后由\((i,j)\)向\(T\)建边权为\(science_{i,j}\)的边
这样的跑出最大流就行了
如果加上集体加成呢
关键是思考如何建使得都选上并且不会被删
那么就是对于文科
我们建立辅助节点\((i,j)'\)
然后\(S\)向\((i,j)'\)建边权为\(sameart_{i,j}\)的边
同时\((i,j)'\)向相邻的\((i,j)\)包括自己建边权为\(inf\)的边
这样就可以保证都选上不会被删
理科同理
CODE:
#include #include #include #include #include #include #include #include #include
HEOI 2019 RP++