| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 767 人关注过本帖
标题:C代码问题
只看楼主 加入收藏
junbin_23102
Rank: 1
等 级:新手上路
帖 子:22
专家分:4
注 册:2011-1-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
C代码问题
输入

第一行为n,代表有n组测试数据。(0

输出

输出每一行最多有多少个同学是按照由矮到高排好队的。

样例输入

2 7 178 179 156 189 226 190 191 8 160 161 162 163 150 178 164 165

样例输出

5 6

给段断码
搜索更多相关主题的帖子: 同学 
2011-02-14 22:53
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
你有没什么思路?

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2011-02-14 23:05
junbin_23102
Rank: 1
等 级:新手上路
帖 子:22
专家分:4
注 册:2011-1-25
收藏
得分:0 
回复 2楼 vandychan
本来想用递归做 发现无从下手
2011-02-14 23:06
『点点滴滴』
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:168
专家分:1035
注 册:2007-7-9
收藏
得分:20 
动态规划多看看
#include <stdio.h>
#define MAXN 1001
int per[MAXN] ;
int res[MAXN] ;
int main()
{
    int n , m , max , maxres;
    int i , j ;
    scanf("%d", &n ) ;
    while ( n-- > 0 )
    {
        max = maxres = 0 ;
        scanf("%d", &m ) ;
        for( i = 0 ; i < m ; i++ )
        {
            res[i] = 1 ;
            scanf("%d", &per[i] );
            if( i == 0 )
                continue ;
            else
            {
                for( j = 0 ; j < i ; j++ )
                {
                    if( per[i] > per[j] )
                    {
                        max = res[j] + 1 ;
                        if( max > res[i] )
                            res[i] = max ;
                    }
                }
            }
            if( res[i] > maxres )
                maxres = res[i] ;
        }
        printf("%d\n", maxres ) ;
    }
    return 0 ;
}

[ 本帖最后由 『点点滴滴』 于 2011-2-15 09:41 编辑 ]
2011-02-15 09:35
pcbaichi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:486
专家分:1185
注 册:2010-11-13
收藏
得分:0 
给你只能判断一组的代码,其余的你自己去想
#include"stdio.h"
#include"stdlib.h"
int main(void)
{
    int n,i,count=0;
    int *p;
    puts("Please enter n:");
    scanf("%d",&n);
    printf("Please enter %d numbers:\n",n);
    if((p=(int *)malloc(n*sizeof(int)))==NULL)
    {
        printf("Not able to allocate memory.\n");
        exit(1);
    }
    for(i=0;i<n;i++)
    {
        scanf("%d",p+i);
        if(*p<*(p+i))
            count++;
    }
    printf("%d\n",count);
    return 0;
}

免费赠送河蟹一只
2011-02-15 09:40
CCFzeroOH
Rank: 2
等 级:论坛游民
帖 子:79
专家分:85
注 册:2009-12-22
收藏
得分:0 
回复 5楼 pcbaichi
不合要求呀
好好看看
2011-02-15 11:36
pcbaichi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:486
专家分:1185
注 册:2010-11-13
收藏
得分:0 
回复 6楼 CCFzeroOH
我的程序只符合他的一部分要求,全给有意思吗?
你自己去输入第一组数据,看看结果,运行都没运行就来发表言论

免费赠送河蟹一只
2011-02-15 12:17
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
dp啊
我去造段代码

[ 本帖最后由 卧龙孔明 于 2011-2-15 12:38 编辑 ]

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2011-02-15 12:36
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
楼主显然没用心,题目粘贴得都不清楚。既然找不到数据规模,我就默认999了,你自己改吧。
算法很水,复杂度nlogn,gcc3.4下编译通过。楼主要测试的话请你用格式正确的数据(别把第一行和后面行合并)。
k,p,l,r,m,b[999];main(t){for(gets(&t);~scanf("%d",&k);printf("%d\n",p))for(p=0;k--;b[l>p?p=l:l]=t)for(scanf("%d",&t),l=1,r=p;l<=r;b[m=(l+r)/2]>t?r=m-1:(l=m+1));}

打酱油路过

[ 本帖最后由 卧龙孔明 于 2011-2-15 13:18 编辑 ]

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2011-02-15 13:09
caoweizhong
Rank: 2
等 级:论坛游民
帖 子:19
专家分:65
注 册:2011-1-22
收藏
得分:0 
不要小看,上面算法有问题,求的是最长排列数。题目意思是:7个数 178 179 156 189 226 190 191 的最长排列数是178 179  189  190 191共5个  ,8个数  160 161 162 163 150 178 164 165 最长排列数是
160 161 162 163   164 165共6个。


[ 本帖最后由 caoweizhong 于 2011-2-16 10:47 编辑 ]
收到的鲜花
  • 卧龙孔明2011-02-15 16:17 送鲜花  1朵   附言:我的算法有没有问题你找个oj测测就知道。
  • 卧龙孔明2011-02-15 16:19 送鲜花  -1朵   附言:不是小看与否,而是问题本身难度倒地怎么样, ...
2011-02-15 15:59
快速回复:C代码问题
数据加载中...
 
   



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

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