BarcelonaXavi 2016-01-23 08:30 采纳率: 0%
浏览 1482
已结题

poj1251求助,测试数据通过但wrong answer

用的Kruskal算法,没用并查集而是在结构体里多了一个变量判断是否是一个连通量。
结果wrong answer。

#include
#include
using namespace std;

struct in{
int f,n,price;

};

int main()
{
int m=1,are[10000],root=1,i;

while(m!=0)
{
    int total=0,head=1,tail=1,q[1000]={0},mark=1;
    in r[2000];
    int j,k,z,h,g,x,flag=1,s;
    char c,d;


    total=0;
    scanf("%d",&m);
    if(m==0) break;
    for(i=1;i<=m-1;i++)
  {
    scanf("\n%c",&c);
    z=c-'A'+1;
    scanf("%d",&g);
   for(j=1;j<=g;j++)
    {

        scanf("\n%c%d",&d,&k);

        h=d-'A'+1;
        r[flag].price=k;
        r[flag].f=z;
        r[flag].n=h;
        flag++;
    }



  }
   flag--;
  for(i=1;i<=flag;i++)                                   //排序;
  for(j=1;j<=flag-i;j++)
  {
    if(r[j].price>r[j+1].price)
    {
        r[j].price=r[j].price+r[j+1].price;
        r[j+1].price=r[j].price-r[j+1].price;
        r[j].price=r[j].price-r[j+1].price;

        r[j].f=r[j].f+r[j+1].f;
        r[j+1].f=r[j].f-r[j+1].f;
        r[j].f=r[j].f-r[j+1].f;

        r[j].n=r[j].n+r[j+1].n;
        r[j+1].n=r[j].n-r[j+1].n;
        r[j].n=r[j].n-r[j+1].n;
    }
  }


  for(i=1;i<=flag;i++)
 {                                            //判断是否是一个连通分量


    if(q[r[i].n]==0&&q[r[i].f]==0)
    {
        total=total+r[i].price;
        q[r[i].n]=mark;
        q[r[i].f]=mark;
        mark++;
        continue;


    }

    if(q[r[i].n]!=q[r[i].f])
    {
        total=total+r[i].price;
        if(q[r[i].n]==0)
        {
            q[r[i].n]=q[r[i].f];

        }
        else if(q[r[i].f]==0)
        {
            q[r[i].f]=q[r[i].n];

        }
        else if(q[r[i].n]!=0&&q[r[i].f]!=0)
        {
            for(j=1;j<=26;j++)
          {
            if(q[j]==q[r[i].f])
            q[j]=q[r[i].n];

          } 
        }


    }


 }
 are[root]=total;
 root++;
}
root--;
for(i=1;i<=root;i++)
{
    printf("%d",are[i]);
    if(i<root) printf("\n");
}

}

  • 写回答

2条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧