codevs 1907 方格取數3

2021-07-09 20:52:05 字數 778 閱讀 8231

這個系列終於做完了。。

又是一道網路流

因為不能取相鄰的點,很容易發現需要二分圖

一半的點連源,另一半連匯,流量為map[i,j]

相鄰的點連起來,流量為inf

答案就是總和減最大流

最大流。。。看這篇吧

**#include#include#include#include#define inf 0x3f3f3f3f

#define g getchar

#define ll long long

#define maxe 10020

#define maxn 1010

using namespace std;

struct reed[maxe];

int e,m,n,ans,sum;

int head[maxn],pd[maxn],dui[maxe];

inline void ins(int x,int y,int w)

void init(){

scanf("%d%d",&m,&n);

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

for(int j=1;j<=n;++j){

int x;

scanf("%d",&x);

if(!((i+j)%2)){

ins(0,(i-1)*n+j,x);

if(i>1)ins((i-1)*n+j,(i-2)*n+j,inf);

if(i1)ins((i-1)*n+j,(i-1)*n+j-1,inf);

if(j

codevs 1907 方格取數 3

在乙個有m n 個方格的棋盤中,每個方格中有乙個正整數。現要從方格中取數,使任意2 個數所在方格沒有公共邊,且取出的數的總和最大。試設計乙個滿足要求的取數演算法。第1 行有2 個正整數m和n,分別表示棋盤的行數和列數。接下來的m行,每行有n個正整數,表示棋盤方格中的數。對於給定的方格棋盤,按照取數要...

Codevs 1907 方格取數 3 最小割

傳送門 1907 方格取數 3 思路 直接求取哪些不好求,但是我們可以求要捨棄哪些,將所有格仔分成兩部分,使得每一部分中都沒有相鄰的格仔,然後一部分連線源點,另一部分連線匯點,權值為格仔中的數字,兩部分中原本相鄰的格仔之間連邊,權值為inf,這樣圖中任意乙個割即為可以捨棄的一種組合,最小割就是所有可...

1907 方格取數 3

時間限制 2 s 空間限制 256000 kb 題目等級 大師 master 題解檢視執行結果 問題描述 在乙個有m n 個方格的棋盤中,每個方格中有乙個正整數。現要從方格中取數,使任 意2 個數所在方格沒有公共邊,且取出的數的總和最大。試設計乙個滿足要求的取數演算法。程式設計任務 對於給定的方格棋...