test

来源:互联网 发布:数据怎么变成图像声音 编辑:程序博客网 时间:2024/05/05 11:44

test




2006 年百度之星程序设计大赛初赛题目 5

座位调整

题目描述:

百度办公区里到处摆放着各种各样的零食。百度人力资源部的调研发现,员工如果可以在自己喜欢的美食旁边工作,工作效率会大大提高。因此,百度决定进行一次员工座位的大调整。

调整的方法如下:

1 . 首先将办公区按照各种零食的摆放分成 N 个不同的区域。(例如:可乐区,饼干区,牛奶区等等)。

2 . 每个员工对不同的零食区域有不同的喜好程度(喜好程度度的范围为 1 — 100 的整数, 喜好程度越大表示该员工越希望被调整到相应的零食区域)。

3 . 由于每个零食区域可以容纳的员工数量有限,人力资源部希望找到一个最优的调整方案令到总的喜好程度最大。

数据输入:

第一行包含两个整数 N , M ,( 1<=N , M<=300 )。分别表示 N 个区域和 M 个员工。

第二行是 N 个整数构成的数列 a ,其中 a[i] 表示第 i 个区域可以容纳的员工数, (1<=a[i]<=M , a[1]+a[2]+..+a[N]=M) 。

紧接着是一个 M*N 的矩阵 P , P ( i , j )表示第 i 个员工对第 j 个区域的喜好度。

答案输出:

对于每个测试数据,输出可以达到的最大的喜好程度。

输入样例



3 3

1 1 1

100 50 25

100 50 25

100 50 25


输出样例



175



数据解释:此数据只存在一种安排方法,三个员工分别安置在三个区域。最终的喜好程度为 100+50+25=175





//







    int numArea = 0; // >=1
    int numEmployee = 0; //<= 300
    
    printf("input number of areas:\n");
    scanf("%d",&numArea);
    while( numArea <1 )
    {
        printf("error,input again\n");
        scanf("%d",&numArea);
    }
    printf("input number of employee:\n");
    scanf("%d",&numEmployee);
    while( numEmployee > 300 || numEmployee <= 0 )
    {
        printf("error,input again\n");
        scanf("%d",&numEmployee);
    }
    int i = 0,j = 0;
    int * EmployeeOfEachArea = malloc(sizeof(int)*numArea);
    memset(EmployeeOfEachArea,0,sizeof(int)*numArea);
    printf("input each area max nunmer of employee : numEmployee = %d numArea = %d\n",numEmployee,numArea);
    for( i = 0; i < numArea; i++ )
    {
        scanf("%d",&EmployeeOfEachArea[i]);
    }    
    int ** SatisfactionOfEmployee = NULL;
    SatisfactionOfEmployee = malloc(sizeof(int)*numArea);
    
    for( i = 0; i < numArea; i++ )
    {
        SatisfactionOfEmployee[i] = malloc(sizeof(int)*numEmployee);
    }
    for( i = 0; i < numArea; i++ )
    {
        for( j = 0; j < numEmployee; j++ )
        {
            SatisfactionOfEmployee[i][j] = i*j;
            printf("%d ",SatisfactionOfEmployee[i][j]);
        }
        printf("\n");
    }
    
    
    
    // 首先计算M个员工的全排列,
    //然后把他们分别放入已经准备好的区域中;
    //最后计算总的满意度的值
    system("PAUSE");
    return 0;





母牛生小牛

Problem
设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛?

Input
本题有多组数据。每组数据只有一个整数N,独占一行。(1≤N≤50)

Output
对每组数据,输出一个整数(独占一行)表示第N年时母牛的数量

Sample Input
1
4
5
20

Sample Output
1
2
3
872





int brow(int year)
{
    int num = 1;
    int i;
    if( year > 3 )
    {
        for( i = 1; i < year - 2; i++ )
        {
            num += brow(i);
        }
    }
    return num;
}




    int a[51];
    int i;
    int N = 0;
    a[1] = a[2] = a[3] = 1;
    a[4] = 2;
    
    for( i = 5; i <= 50; i++ )
    {
        a[i] = a[i-1] + a[i-3];
        printf("%d\n",a[i]);
    }
    
    scanf("%d",&N);
    printf("%d",a[N]);


http://www.programfan.com/acm/





2006 年百度之星程序设计大赛初赛题目 6

百度语言翻译机

时限 1s

百度的工程师们是非常注重效率的,在长期的开发与测试过程中,他们逐渐创造了一套他们独特的缩率语。他们在平时的交谈,会议,甚至在各中技术文档中都会大量运用。

为了让新员工可以更快地适应百度的文化,更好地阅读公司的技术文档,人力资源部决定开发一套专用的翻译系统,把相关文档中的缩率语和专有名词翻译成日常语言。

输入数据:

输入数据包含三部分

1. 第一行包含一个整数 N ( N<=10000 ),表示总共有多少个缩率语的词条。

2. 紧接着有 N 行的输入,每行包含两个字符串,以空格隔开。第一个字符串为缩率语(仅包含大写英文字符,长度不超过 10 ),第二个字符串为日常语言(不包含空格,长度不超过 255 ) .

3. 从第 N+2 开始到输入结束为包含缩略语的相关文档。(总长度不超过 1000000 个字符)

输出数据:

输出将缩率语转换成日常语言的文档。(将缩率语转换成日常语言,其他字符保留原样)

输入样例



6

PS 门户搜索部

NLP 自然语言处理

PM 产品市场部

HR 人力资源部

PMD 产品推广部

MD 市场发展部

百度的部门包括 PS , PM , HR , PMD , MD 等等,其中 PS 还包括 NLP 小组。



输出样例



百度的部门包括门户搜索部,产品市场部,人力资源部,产品推广部,市场发展部等等,其中门户搜索部还包括自然语言处理小组。



注意:

1 . 输入数据中是中英文混合的,中文采用 GBK 编码。

2 . 为保证答案的唯一性,缩率语的转换采用正向最大匹配(从左到右为正方向)的原则。请注意输入例子中 PMD 的翻译。





    int numWords = 0;
    printf("input number of words :\n");
//    scanf("%d",&numWords);
    numWords = 6;
    Word * word = malloc(sizeof(Word)*numWords);
    memset(word,0,sizeof(Word)*numWords);
    int i;
    printf("input words :\n");
    for( i = 0; i < numWords; i++ )
    {
    //    scanf("%s %s",&(word[i].a),&(word[i].b));
    }
    strcpy(word[0].a,"PS");
    strcpy(word[0].b,"门户搜索部");
    strcpy(word[1].a,"NLP");
    strcpy(word[1].b,"自然语言处理");
    strcpy(word[2].a,"PM");
    strcpy(word[2].b,"产品市场部");
    strcpy(word[3].a,"HR");
    strcpy(word[3].b,"人力资源部");
    strcpy(word[4].a,"PMD");
    strcpy(word[4].b,"产品推广部");
    strcpy(word[5].a,"MD");
    strcpy(word[5].b,"市场发展部");
    for( i = 0; i < numWords; i++ )
    {
        printf("%s %s\n",word[i].a,word[i].b);
    }
    printf("\n\n\n");
    char * ddd = "百度的部门包括PS,PM,HR,PMD,MD等等,其中PS还包括NLP小组。";
    int length = strlen(ddd) + 1;
    char * str = malloc(length * sizeof(char));
    strcpy(str,ddd);
    int j = 0;
    char * t = malloc(sizeof(char)*4);
    memset(t,0,sizeof(char)*4);
    for( i = 0; i < length - 1; i++ )
    {
        if( str[i] >= 'A' && str[i] <= 'Z' )
        {
        //    printf("%c ",str[i]);
                t[j] = str[i];
                j++;
        }
        else
        {
            if( j != 0 )
            {
                int k = 0;
                for( k = 0; k < 6; k++ )
                {
                    if(strcmp(t,word[k].a))
                    {
                        printf("%s\n",word[k].b);
                    }    
                }
                
            }
            j = 0;
        }
    }


原创粉丝点击