poj 2531 Network Saboteur( dfs )

时间:2021-03-03 02:33:44

题目:http://poj.org/problem?id=2531

题意:一个矩阵,分成两个集合,求最大的 阻碍量

改的 一位大神的代码,比较简洁

 #include<stdio.h>
#include<string.h>
int n,max;
int g[][];
int v[];
void dfs(int x,int sum)
{
int i,t=sum;
v[x]=;
for(i=; i<=n; i++)
{
if(v[i]==)
t+=g[x][i];
else t-=g[x][i];
}
if(t>max)
max=t;
for(i=x+; i<=n; i++)
if(t>sum)
{
dfs(i,t);
v[i]=;
}
}
int main()
{
int i,j;
scanf("%d",&n);
for(i=; i<=n; i++)
for(j=; j<=n; j++)
scanf("%d",&g[i][j]);
max=;
memset(v,,sizeof(v));
dfs(,);
printf("%d\n",max);
return ;
}