求c语言一道题的题解急Description有一个N×M的单位方格中,其中有些方格是水塘,其他方格是陆地.如果要用1×2的矩阵区覆盖(覆盖过程不容许有任何部分重叠)这个陆地,那么最多可以覆盖多少

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/08 16:20:08
求c语言一道题的题解急Description有一个N×M的单位方格中,其中有些方格是水塘,其他方格是陆地.如果要用1×2的矩阵区覆盖(覆盖过程不容许有任何部分重叠)这个陆地,那么最多可以覆盖多少
xSRAޤ )|*t,4TLUbe1.Q! N,!eS c13,ݘPTeo60}{&WEּd6#nt=)85eg4|ZY\Vë-os!,fh΢l^*$q edԸ&xIR6eV:{uC>ѹ[!iՒN)I[w[̐&nn֍I*gv`}(7v-GHH&n뒋M/0; rNW wIBzz ]EzЇqKX% 3a ifyeytO"Cb\ pN!I[n"u[QW(F(CiFPbMn[@hn2jvnɷm-ERw6,VY$/HG@ȣZz@SS'U?2.wBgP+tJt[gw-XCwl'ئ fWĠj0Ah8,&|3g"| -%Ż N9$u4Eo=#CRVSWōwIfԐYЃk^zC]ع@&ʕDh'֠߃,Е/˫Of՟aVF?{Q^ =xh`^ M'ѽ

求c语言一道题的题解急Description有一个N×M的单位方格中,其中有些方格是水塘,其他方格是陆地.如果要用1×2的矩阵区覆盖(覆盖过程不容许有任何部分重叠)这个陆地,那么最多可以覆盖多少
求c语言一道题的题解急
Description
有一个N×M的单位方格中,其中有些方格是水塘,其他方格是陆地.如果要用1×2的矩阵区覆盖(覆盖过程不容许有任何部分重叠)这个陆地,那么最多可以覆盖多少陆地面积.
输入描述 Input Description
输入文件的第一行是两个整数N,M (1

求c语言一道题的题解急Description有一个N×M的单位方格中,其中有些方格是水塘,其他方格是陆地.如果要用1×2的矩阵区覆盖(覆盖过程不容许有任何部分重叠)这个陆地,那么最多可以覆盖多少
其实就是一个二分匹配.看这个矩阵
1 2 3
4 5 6
7 8 9
可以把:1 3 5 7 9作为1边
2 4 6 8 作为另外一边
然后做一个二分匹配.
i表示行,j表示列,公式表示就是 (i+j)%2 == 0是一边 (i+j)%2 == 1 是另一边
如果发现i,j是水塘,直接跳过就行了,然后对两边的数据进行匹配.
这样单边点的最大个数是5000,显然不能用匈牙利算法 O(n^3)
好久没做题,都忘了Dinic的复杂度.查了一下,用Dinic最大流的思想解决二分匹配的复杂度是 sqrt(V)*E
这道题V最大是5000,E最多是20000,Sqrt(V)*E = 1400000
应该是可以做的