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;
母牛生小牛
设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第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;
}
}
- test
- test
- test
- test
- test
- test
- test
- Test
- test
- Test
- test
- test
- test
- test
- test
- test
- test
- Test
- Apache Mina 讲解
- HDU-1068 Girls and Boys
- Android Google Maps 完整实例分析
- Linux终端设备驱动 ----UART的驱动
- WCF 4.0 service consumed in Silverlight 4.0 with cross domain
- test
- DevExpress控件的使用(二)
- U-boot分析与移植(6)----U-boot--Makefile
- IIS7的应用程序池
- webkit中timer的应用
- 在选择屏幕的标准应用工具条上增加自定义按钮
- Listview中使用线程实现无限加载更多项目的功能
- android使用ffmpeg的实例程序
- 如何在ALV中输出标题头