| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 645 人关注过本帖
标题:这个哪里有问题?为什么出错呢?
只看楼主 加入收藏
lcsolitary
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-6-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
这个哪里有问题?为什么出错呢?
Description 问题描述
     Last week, School held a competition of flying kite, contestants are divided into pairs, and one contestant competes with another in each pair. As we know, different way dividing pairs may bring different splendid level value, which appears as a real numbers. Now Miss Ye wants to know how to divide the competitor in order to attain maximum splendid level.
     there are N contestants taking part the competition.(N为偶数)
     there are  N lines, each line contains N real numbers. The j-th number in the i-th line is the splendid level value when the i-th contestant and the j-th constant are made in one pair. You can assume the j-th number in the i-th line is equal to the i-th number in the j-th line.
0 1 2 3
1 0 4 5
2 4 0 6
3 5 6 0

output the maximum total splendid level value

这个用什么算法好呀?求指点

我的程序哪里有错哦?
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int T;
    scanf("%d",&T);//读入有多少测试数据
    while(T--)
    {

    int N,i,j;
    scanf("%d",&N);
    float  won[N][N],value=0.0,max;
    for(i=0;i<N;i++)
    for(j=0;j<N;j++)
    scanf("%f",&won[i][j]);//读入数据
 
  //处理数据
    int k=0;
    while(k!=(N/2))
    {
    k++;
    int S,T;
    max=-0.1;
    for(i=0;i<N;i++)
    for(j=i+1;j<N;j++)
    {
    if(max<won[i][j])
    if(won[i][j]!=-0.1)
    { max=won[i][j];
      S=i;
      T=j;
    }
    }
    value=value+max;
   
    for(i=0;i<N;i++)
    {
       won[S][i]=-0.1;
       won[T][i]=-0.1;
       won[i][S]=-0.1;
       won[i][T]=-0.1;
    }
    }
    printf("%.2f\n",value);
    }
    return  0;
}

搜索更多相关主题的帖子: another into different appears numbers 
2011-06-09 16:36
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:4 
看不懂描述里的英文说的什么意思?

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-09 17:06
不归鹄
Rank: 9Rank: 9Rank: 9
来 自:冥王星
等 级:蜘蛛侠
威 望:4
帖 子:491
专家分:1380
注 册:2009-12-20
收藏
得分:4 
呃……四六级没过,还是让老外们自己解决他们的问题吧,路过…………

2011-06-09 17:10
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:4 
楼主,我的英语三级没有过。
2011-06-09 17:33
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:4 
我把题目翻译一下吧,但是想不到比较好的算法,期待高手解答。翻译内容对原文描述不清之处有进一步解释,错误之处望大家指正

下周学校将举行放风筝大赛,选手们要被分成两人一组。各组选手相互作赛。
每个选手只与他/她所在分组的另一名选手进行比赛。
比赛将有 N 位选手参加(N为偶数)。
众所周知,分组方法将决定比赛的精彩程度。我们以一个实数来表示比赛的精彩程度。
本次比赛的主办人叶老师想知道怎样分组才能使比赛的总精彩程度最大。

输入:
共有 N 行,每行包含 N 个以空格分隔的实数。第 i 行第 j 个数字表示选手 i 与选手 j 分为一组进行比赛的精彩程度。
第 j 行第 i 个数与第 i 行第 j 个数相同。

输出:
比赛总精彩程度的最大值。

[ 本帖最后由 voidx 于 2011-6-9 23:25 编辑 ]
2011-06-09 18:22
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
此贴要顶起,期待高手
2011-06-09 22:50
Qingtian_2
Rank: 2
来 自:天津
等 级:论坛游民
帖 子:50
专家分:96
注 册:2011-3-9
收藏
得分:4 
期待大牛给好算法~
2011-06-09 23:10
lcsolitary
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-6-9
收藏
得分:0 
回复 2楼 ansic
五楼正解,可以看一下
2011-06-11 13:01
lcsolitary
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-6-9
收藏
得分:0 
回复 7楼 Qingtian_2
我知道哪里出问题,局部最优解不是全局最优解,所以不能像我那样写
2011-06-11 13:02
快速回复:这个哪里有问题?为什么出错呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015627 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved