NOI 2009 植物大戰殭屍

2022-08-22 13:12:14 字數 1252 閱讀 4030

題目大意請自便。

經典的最大權閉合子圖。不過要拓撲一下圖的反向邊去環,因為如果不反向那刪掉的點是環內的點和保護環的點,但明顯保護環的點是可以取到的,而真正因該去掉的被環保護的點卻還存在,所以必須反向。然後就可以按照經典建圖方法搞就好了。

**:view code

#include

#include

#include

#include

#include

#include

#define inf 10000000

using

namespace std;

struct atp

e[1000000],e2[1000000];

int now=0,tot=0,tot2=0,n,m,s,t,n=0,sum=0;

int score[1000],attack[1000],first[1000],first2[1000];

int a[200][200];

int h[1000],num[1000];

bool b[1000];

int ins(int x,int y)

int add(int x,int y,int d)

void init()

}

for (int i=0;ifor (int j=0;j1;j++)

}int topsort()

while (!q.empty())

}return0;}

int find(int u,int flow)

if (e2[p].d>0 && pos>h[e2[p].y]) pos=h[e2[p].y];

}if (temp==flow)

}return flow-temp;

}int work()

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

if (b[i])

for (int p=first[i];p;p=e[p].next)

if (b[e[p].y])

add(e[p].y,i,inf);

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

n+=2;

num[0]=n;

int ans=0;

while (h[s]"

%d\n

",ans>0?sum-ans:0);

return ans;

}int main()

NOI2009 植物大戰殭屍

這道題跟noi2006 最大獲利其實是很像的 一樣都是要搞定一些點才能搞定另一些點,然後有些點正權有些點負權 這種問題,其實是最大權閉合子圖 amber的最小割 有詳細的講解法和證明 閉合子圖的定義是,圖中每個點所連線的的任何一條邊不指向圖外,可以有邊指向這個圖 這實際上就是乙個依賴關係,如果我們把...

NOI 2009 植物大戰殭屍

plants vs.zombies pvz 是最近十分風靡的一款小遊戲。plants 植物 和 zombies 殭屍 是遊戲的主角,其中 plants 防守,而 zombies 進攻。該款遊戲包含多種不同的挑戰系列,比如 protect your brain bowling 等等。其中最為經典的,莫...

NOI2009 植物大戰殭屍

這道題跟noi2006 最大獲利其實是很像的 一樣都是要搞定一些點才能搞定另一些點,然後有些點正權有些點負權 這種問題,其實是最大權閉合子圖 amber的最小割 有詳細的講解法和證明 閉合子圖的定義是,圖中每個點所連線的的任何一條邊不指向圖外,可以有邊指向這個圖 這實際上就是乙個依賴關係,如果我們把...