标题:新人求助一道题!过桥问题。。。。。
取消只看楼主
LeslieCh
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2013-11-27
结帖率:77.78%
已结贴  问题点数:10 回复次数:2 
新人求助一道题!过桥问题。。。。。
2440: 过桥问题
Time Limit: 1 Sec  Memory Limit: 64 MB
Submit: 1690  Solved: 398

Description
在漆黑的夜里,n位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,他们一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,每人所需要的时间分别是a1、a2、...an分钟;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行动时所需的时间。问题是,如何设计一个方案,让这些人尽快过桥。
Input
输入分2行第一行是一个整数n(1<=n<=1000) 第二行是n个整数,分别表示这n个人单独过桥需要的时间
Output
输出一行,他们过桥需要的总时间
Sample Input
5
1 3 6 8 12
Sample Output
29
HINT

Source
yhr

我的代码
#include<stdio.h>
int main()
{
    int t,m,i,j,n,a[1000],temp;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<n-1;i++)//mao pao
    {
        for(j=i+1;j<n;j++)
        {
            if(a[i]>a[j])
            {temp=a[i];a[i]=a[j];a[j]=temp;}
        }
    }
    m=n;
    t=0;
    while(n!=1)
    {
        t=t+a[1];
        n=n-2;//yu liang
        if(n!=0)
        {t=t+a[0];n++;}
        else
        {break;}
        t=t+a[m-1];
        m=m-2;
        n=n-2;
        if(n!=0)
        {t=t+a[1];n++;}
        else
        {break;}
    }
    if(n==1){printf("%d\n",a[0]);}
    else
    {printf("%d\n",t);}
    return 0;
}


运行数据没错,但提交总是WRONG ANSWER
求各位帮忙看下哪里有错,我找了很久都没找到
搜索更多相关主题的帖子: 手电筒 Memory 旅行者 而且 护栏 
2013-12-23 16:48
LeslieCh
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2013-11-27
得分:0 
回复 6楼 pangshch
动态内存是啥?你的程序里面有好多东西我没学到
我些的思路大概是,让最快的两人先过桥,然后走得最快的人回来送电筒,给桥这边走得最慢的两人过去,走得第二快的人又回来送电筒。。。这样循环知道所有人都过河。
我试的所有数据都对了,,所以不知道我的程序哪里有错TAT
2013-12-25 10:26
LeslieCh
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2013-11-27
得分:0 
回复 11楼 pangshch
运行complie error..
Main.cc: In function ‘int main()’:
Main.cc:12: error: invalid conversion from ‘int*’ to ‘unsigned int*’
Main.cc:16: warning: comparison between signed and unsigned integer expressions
Main.cc:19: warning: comparison between signed and unsigned integer expressions
Main.cc:20: warning: comparison between signed and unsigned integer expressions
Main.cc:10: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
Main.cc:17: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result

辅助解释:
warning: ignoring return value of:警告:忽略了函数的返回值,可能是函数用错或者没有考虑到返回值异常的情况
2013-12-28 16:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-425590-1-1.html




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

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