TJOI2013 攻擊裝置(網路流,最小割)

2022-03-19 23:55:22 字數 1139 閱讀 1670

網路流被hbx吊起來打

考慮一下這個走法是不是和象棋中馬的走法一模一樣(廢話)

那麼顯然我每一次移動是走三次,如果將棋盤二分圖染色一下,不就是每一次只能走到另乙個顏色的嗎?

然後我們題目中求的是最多可以放置多少個裝置,不能夠攻擊,也就是乙個裸的二分圖最小割?

直接最大流求一下做個減法就沒了。

#include#include#include#include#include#include#include#include#includeusing namespace std;

#define ll long long

#define re register

#define file(a) freopen(a".in","r",stdin);freopen(a".out","w",stdout)

inline int gi()

while(ch>='0' && ch<='9')

return f*sum;

}const int n=100010,m=300010,inf=1e9+10;

int front[n],nxt[m<<1],s,t,cnt,to[m<<1],w[m<<1],dep[n],n,m,a[510][510],num[510][510],cur[n];

int wa[9]=;

int lk[9]=;

void add(int u,int v,int val)

bool bfs()

} }return dep[t];

}int dfs(int u,int flow)

else dep[v]=0;

} }return 0;

}int dinic()

return flow;

}int main()

for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)num[i][j]=(i-1)*n+j;

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

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

if(!a[i][j])}}

else

}printf("%d\n",n*n-dinic()-m);

return 0;

}

TJOI2013 攻擊裝置

time limit 10 sec memory limit 128 mb submit 1326 solved 636 submit status discuss 給定乙個01矩陣,其中你可以在0的位置放置攻擊裝置。每乙個攻擊裝置 x,y 都可以按照 日 字攻擊其周圍的 8個位置 x 1,y 2 ...

Tjoi2013 攻擊裝置

description 給定乙個01矩陣,其中你可以在0的位置放置攻擊裝置。每乙個攻擊裝置 x,y 都可以按照 日 字攻擊其周圍的 8個位置 x 1,y 2 x 2,y 1 x 1,y 2 x 2,y 1 x 1,y 2 x 2,y 1 x 1,y 2 x 2,y 1 求在裝置互不攻擊的情況下,最多...

TJOI2013 松鼠聚會

題目描述 草原上住著一群小松鼠,每個小松鼠都有乙個家。時間長了,大家覺得應該聚一聚。但是草原非常大,松鼠們都很頭疼應該在誰家聚會才最合理。每個小松鼠的家可以用乙個點x,y表示,兩個點的距離定義為點 x,y 和它周圍的8個點 x 1,y x 1,y x,y 1 x,y 1 x 1,y 1 x 1,y ...