題目大意請自便。
經典的最大權閉合子圖。不過要拓撲一下圖的反向邊去環,因為如果不反向那刪掉的點是環內的點和保護環的點,但明顯保護環的點是可以取到的,而真正因該去掉的被環保護的點卻還存在,所以必須反向。然後就可以按照經典建圖方法搞就好了。
**: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的最小割 有詳細的講解法和證明 閉合子圖的定義是,圖中每個點所連線的的任何一條邊不指向圖外,可以有邊指向這個圖 這實際上就是乙個依賴關係,如果我們把...