| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5538 人关注过本帖, 3 人收藏
标题:这个C程序怎么编?
只看楼主 加入收藏
qq383264679
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:155
专家分:130
注 册:2012-1-19
收藏
得分:0 
我不会··看看
2013-06-03 22:52
asd877
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-3-7
收藏
得分:0 
回复 15楼 笑傲
如果在一天内的完成的在这个程序就不能运行了。。。。
比如
输入:
4
1 2 10
3 6 20
2 6 25
1 1 15
结果:
40
我用这个程序就会出错,,运行不出结果....
2013-06-03 22:53
笑傲
Rank: 8Rank: 8
来 自:迪拜
等 级:蝙蝠侠
威 望:5
帖 子:223
专家分:856
注 册:2013-3-9
收藏
得分:0 
回复 22楼 asd877
哦,那就加一个条件j!=i吧!
我想问一下:在你说的这个输入下不可以
先1 1 15
再1 2 10
再2 6 25么?
如果可以的话结果应该是50吧,而且题目说开始和结束相同不冲突的:

练就一身本领,只为笑傲江湖!
2013-06-03 23:49
嗜血老妖
Rank: 3Rank: 3
来 自:江西
等 级:论坛游侠
威 望:2
帖 子:102
专家分:163
注 册:2013-3-25
收藏
得分:0 
贪心算法貌似可以解决!!!!

仗剑走天涯,网络论英雄。
2013-06-04 09:22
deepinnn
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-5-8
收藏
得分:0 
留个标记
2013-06-04 11:40
赵疯子
Rank: 8Rank: 8
来 自:dream
等 级:蝙蝠侠
威 望:2
帖 子:365
专家分:737
注 册:2013-5-5
收藏
得分:20 
程序代码:
#include<stdio.h>
long int t,n,a[30000][3],best[100000],bestw;  /* bestw为划分阶段的最优,与best[i]比较选择最优的*/
void qsort(int l,int r);
int partion(int l,int r);
int main()
{
    long int i,j,num=1,max;
    t=1;
    while(num++<=t)
    {
        max=0;
        scanf("%ld",&n);
        for(i=0;i<n;i++)
        {
            scanf("%ld%ld%ld",&a[i][0],&a[i][1],&a[i][2]);
        }
        qsort(0,n);        /*对a按照结束时间排序*/
        max=a[n-1][1];     /*找出结束时间最晚者,即为a排好序之后的最后面的元素*/
        best[0]=0;
        for(i=1,j=0;i<=max;i++)
        {
            best[i]=best[i-1];
            for(;j<n&&a[j][1]==i;j++)
            {
                bestw=best[a[j][0]]+a[j][2];
                if(best[i]<bestw)  /*选择最优策略*/
                    best[i]=bestw;
            }
        }
        printf("%ld\n",best[max]);
    }
    return(0);
}
void qsort(int l,int r)
{
    int q;
    if(l<r)
    {
        q=partion(l,r);
        qsort(l,q);
        qsort(q+1,r);
    }
}
int partion(int l,int r)
{
    int i,j,temp,k;
    temp=a[l][1];
    i=l+1;
    j=r-1;
    while(1)
    {
        while(a[i][1]<temp&&i<r) i++;
        while(a[j][1]>=temp&&j>l)j--;
        if(i>=j)
            break;
        k=a[i][1];
        a[i][1]=a[j][1];
        a[j][1]=k;
        k=a[i][0];
        a[i][0]=a[j][0];
        a[j][0]=k;
        k=a[i][2];
        a[i][2]=a[j][2];
        a[j][2]=k;
    }
    a[l][1]=a[j][1];
    a[j][1]=temp;
    temp=a[l][0];
    a[l][0]=a[j][0];
    a[j][0]=temp;
    temp=a[l][2];
    a[l][2]=a[j][2];
    a[j][2]=temp;
    return(j);
}
动态规划best[]为个结束时间的最大效益,并对输入的数据按照结束时间排序
收到的鲜花
  • czz52421992013-06-04 14:35 送鲜花  10朵  
2013-06-04 13:53
YJ_Hao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:215
专家分:609
注 册:2013-3-22
收藏
得分:0 
没时间,围观先!
2013-06-04 17:25
soul叶子
Rank: 1
等 级:新手上路
帖 子:7
专家分:3
注 册:2013-6-4
收藏
得分:0 
不晓得哎
2013-06-04 21:50
赵疯子
Rank: 8Rank: 8
来 自:dream
等 级:蝙蝠侠
威 望:2
帖 子:365
专家分:737
注 册:2013-5-5
收藏
得分:0 
回复 26楼 赵疯子
答案对吗?
2013-06-05 12:09
子楠
Rank: 3Rank: 3
来 自:武汉
等 级:论坛游侠
帖 子:111
专家分:164
注 册:2013-4-9
收藏
得分:0 
不好弄呀,时间还要不冲突,有点高深啊
2013-06-06 12:18
快速回复:这个C程序怎么编?
数据加载中...
 
   



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

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