#include<stdio.h>
#include<stdlib.h>
#define MAX 101
int main()
{
int i,j,k,node1,node2,alliter;
long int maxgain;
int net1[MAX],net2[MAX],a[MAX][MAX];
/*int a[MAX][MAX]={
0,0,0,0,0,0,0,
0,0,1,2,3,2,4,
0,1,0,1,4,2,1,
0,2,1,0,3,2,1,
0,3,4,3,0,4,3,
0,2,2,2,4,0,2,
0,4,1,1,3,2,0};*/
long int gain[MAX][MAX];
int inter[MAX];
int ext[MAX];
int d[MAX];
int node_stat[MAX][3];
//int net1[MAX]={0,1,2,3,0,0,0};
//int net2[MAX]={0,0,0,0,4,5,6};
//int net1[MAX]={0,1,2,3,0,0,0};
//int net2[MAX]={0,0,0,0,4,5,6};
for(i=0;i<MAX;i++)
{
for(j=0;j<=i+1;j++)
{
if(i==0)
a[i][j]=0;
else if(j==0)
a[i][j]=0;
else if(i==j)
{
a[i][j]=0;
}
else
a[i][j]=random()%50;
}
}
for(i=MAX-1;i>=0;i--)
{
for(j=MAX-1;j>=i;j--)
{
a[i][j]=a[j][i];
}
}
printf("|");
for(i=0;i<(MAX+1)/2;i++)
{
net1[i]=i;
net2[i]=0;
node_stat[i][0]=i;
node_stat[i][1]=(i!=0)?1:0;
node_stat[i][2]=0;
//printf(" %d %d %d %d %d \n",net1[i],net2[i],node_stat[i][0],node_stat[i][1],node_stat[i][2]);
}
for(i=(MAX+1)/2;i<MAX;i++)
{
net2[i]=i;
net1[i]=0;
node_stat[i][0]=i;
node_stat[i][1]=2;
node_stat[i][2]=0;
//printf(" %d %d %d %d %d \n",net1[i],net2[i],node_stat[i][0],node_stat[i][1],node_stat[i][2]);
}
/*int node_stat[MAX][3]={
0,0,0,
1,1,0,
2,1,0,
3,1,0,
4,2,0,
5,2,0,
6,2,0};*/
for(i=0;i<MAX;i++)
{
for(j=0;j<MAX;j++)
{
//printf(" %d ",a[i][j]);
}
//printf("\n");
}
alliter=0;
while(alliter+1 < MAX)
{
//printf("External Internal Difference\n");
for(i=0;i<MAX;i++)
{
ext[i]=0;
inter[i]=0;
if(node_stat[i][1]==1)
{
for(j=0;j<MAX;j++)
{
ext[i]+=a[i][net2[j]];
}
for(k=0;k<MAX;k++)
{
inter[i]+=a[i][net1[k]];
}
}
else if(node_stat[i][1]==2)
{
for(j=0;j<MAX;j++)
{
ext[i]+=a[net1[j]][i];
}
for(k=0;k<MAX;k++)
{
inter[i]+=a[net2[k]][i];
}
}
d[i]=ext[i]-inter[i];
//printf("%d \t %d \t %d\n",ext[i],inter[i],d[i]);
}
maxgain=-2147483647;
//free(maxgain);
//maxgain=(int *)realloc(maxgain,sizeof(int));
node1=0;
node2=0;
for(i=0;i<MAX;i++)
{
for(j=0;j<MAX;j++)
{
if(net1[i]==0 || net2[j]==0 || node_stat[i][2]==1 || node_stat[j][2]==1){
gain[i][j]=0;
}
else
{
gain[i][j]=d[net1[i]]+d[net2[j]]-2*(a[net1[i]][net2[j]]);
if(maxgain<gain[i][j])
{
maxgain=gain[i][j];
node1=i;
node2=j;
}
}
//printf(" %d ",gain[i][j]);
}
//printf("\n");
}
printf("Maximum gain : %d \t Exchange %d and %d \n",maxgain,node1,node2);
net1[node1]=0;
net2[node1]=node1;
net2[node2]=0;
net1[node2]=node2;
node_stat[node1][1]=2;
node_stat[node2][1]=1;
node_stat[node1][2]=1;
node_stat[node2][2]=1;
alliter=alliter+2;
}
}
周楷雯
- 粉丝: 98
- 资源: 1万+
最新资源
- java项目_ssm高校信息资源共享平台_java毕业设计.zip
- java项目_ssm高校校园点餐系统_计算机毕业设计.zip
- java精品项目-基于ssm的儿童成长博客记录系统-【毕业设计】-.zip
- java精品源码-基于ssm的大学生校园兼职平台管理系统【毕业设计】.zip
- java精品项目-基于ssm的springboot的校园二手交易平台【毕业设计】.zip
- java精品项目-基于SpringBoot+Thymeleaf的党员信息管理系统毕业设计-带.zip
- java精品项目-基于ssm出租车管理系统【毕业设计】.zip
- java精品项目-基于SSM+Shiro+LayUI+EasyUI的权限管理系统【毕业设计】.zip
- java毕业设计-ssm二手交易平台网站-计算机毕业设计.zip
- java毕业设计ssm二手手机回收平台系统-计算机毕业设计.zip
- java毕业设计-多用户博客个人网站-计算机毕业设计.zip
- java毕业设计_ssm高校二手交易平台_计算机毕设.zip
- java毕业设计_ssm房屋租赁系统_计算机毕业设计.zip
- java毕业设计_ssm高校毕业生就业满意度调查统计系统_计算机毕业设计.zip
- java【毕业设计】精品项目-基于ssm的学生在线选课系统.zip
- java【毕业设计】精品项目-基于ssm的在线考试系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈