标签:pos accept more mat form matrix info res int
Time Limit: 2000MS | Memory Limit: 65536K | |
Total Submissions: 9364 | Accepted: 4417 |
Description
Input
Output
Sample Input
3 0 50 30 50 0 40 30 40 0
Sample Output
90
百度了一下才知道思路,继续努力。
。。
题意:把一个连通的集合分成两个不连通的集合。求这两个集合间最大的信息交换量。
每一个点(电脑)能够由两个选择。分给A集合或者B集合。
每次把一个点分类后。马上求出它和还有一个集合的交换信息量。
#include<stdio.h> #include<queue> #include<map> #include<string> #include<string.h> using namespace std; #define N 25 const int inf=0x1f1f1f1f; int g[N][N]; int ans,n; bool f[N]; void dfs(int u,int sum) { if(u>=n) { ans=max(ans,sum); return ; } int i,tmp=0; f[u]=false; //把点U分为集合A for(i=0;i<u;i++) //求点U和集合B交换的信息量 if(f[i]==true) tmp+=g[u][i]; dfs(u+1,sum+tmp); f[u]=true; //把点U分为集合B for(i=tmp=0;i<u;i++) //求点U和集合A交换的信息量 if(f[i]==false) tmp+=g[u][i]; dfs(u+1,sum+tmp); } int main() { int i,j; while(scanf("%d",&n)!=-1) { for(i=0; i<n; i++) for(j=0; j<n; j++) scanf("%d",&g[i][j]); ans=0; dfs(0,0); printf("%d\n",ans); } return 0; }
poj 2531 Network Saboteur (dfs)
标签:pos accept more mat form matrix info res int
原文地址:http://www.cnblogs.com/yxysuanfa/p/6848927.html