| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 942 人关注过本帖
标题:百度之星初赛B
只看楼主 加入收藏
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
结帖率:79.37%
收藏
 问题点数:0 回复次数:7 
百度之星初赛B
题目:http://www.
第一题:BFS+hash算法
第三题写出来了,但是估计肯定超时
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int number[1000000];
int state[1000000][2];
void print(int sum)
{
    int i,min;
    if(state[sum][0]>state[sum][1])
    min=state[sum][1];
    else
    min=state[sum][0];
    //printf("%d\n",min);
    for(i=2;i<=min;i++)
    {
    if(state[sum][0]%i==0&&state[sum][1]%i==0)
    {
    state[sum][0]=state[sum][0]/i;
    state[sum][1]=state[sum][1]/i;
    }
    }
    printf("%d/%d\n",state[sum][0],state[sum][1]);
}
int main()
{
    int i,j,k,count,max=0,n,m;
    int sum;
    scanf("%d %d",&n,&m);
    memset(number,0,sizeof(number));
    for(i=0;i<n;i++)
    scanf("%d",&number[i]);
    for(i=0;i<m;i++)
    max=max+number[i];
    max=max/m;
    for(i=0;i<n;i++)
    for(j=i;j<n;j++)
    {
    sum=0;count=0;
    for(k=i;k<=j;k++)
    {
    sum=sum+number[k];
    count++;
    }
    if(sum/count>max&&count>=m)
    {
    max=sum/count;
    state[max][0]=sum;
    state[max][1]=count;
    }
    }
    if(state[max][1]==1)
    printf("%d\n",state[max][0]);
    else
    print(max);
    //system("pause");
    return 0;
}


[ 本帖最后由 sunyh1999 于 2011-6-13 19:11 编辑 ]
搜索更多相关主题的帖子: 百度 
2011-06-12 20:52
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
题目呢?
2011-06-12 20:54
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
发现有几个错误的地方,现在发上代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int number[1000000];
void print(int a,int b)
{
    int i,min;
    if(a>b)
    min=b;
    else
    min=a;
    //printf("%d\n",min);
    for(i=2;i<=min;i++)
    {
    if(a%i==0&&b%i==0)
    {
    a=a/i;
    b=b/i;
    }
    }
    if(b==1)
    printf("%d\n",a);
    else
    printf("%d/%d\n",a,b);
}
int main()
{
    int i,j,k,count,max=0,n,m;
    int a,b,sum;
    scanf("%d %d",&n,&m);
    memset(number,0,sizeof(number));
    for(i=0;i<n;i++)
    scanf("%d",&number[i]);
    for(i=0;i<m;i++)
    max=max+number[i];
    max=max/m;
    for(i=0;i<n;i++)
    for(j=i;j<n;j++)
    {
    sum=0;count=0;
    for(k=i;k<=j;k++)
    {
    sum=sum+number[k];
    count++;
    }
    if((float)sum/count>max&&count>=m)
    {
    max=sum/count;
    a=sum;
    b=count;
    }
    }
    if(b==1)
    printf("%d\n",a);
    else
    print(a,b);
    system("pause");
    return 0;
}

欢迎来到我的博客:http://blog..cn/noisunyuhong
2011-06-13 19:11
ouyangouyang
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:273
专家分:579
注 册:2009-10-8
收藏
得分:0 
能解释一下吗?大虾

多少恨, 昨夜梦魂中。 还似旧时游上苑, 车如流水马如龙; 花月正春风!
2011-06-14 11:17
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
好久没上来了,差点忘记密码,支持一下!

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-06-14 12:06
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
是哪个僵尸的题?

                                         
===========深入<----------------->浅出============
2011-06-14 15:12
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
第一题很显然吧,枚举起点,然后按照每个置换处理就行了,n^2就能过
第三题是凸壳优化的dp, O(n)

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2011-06-14 17:18
ouyangouyang
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:273
专家分:579
注 册:2009-10-8
收藏
得分:0 
为什么是n^2就能过

多少恨, 昨夜梦魂中。 还似旧时游上苑, 车如流水马如龙; 花月正春风!
2011-06-14 22:31
快速回复:百度之星初赛B
数据加载中...
 
   



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

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