社区
英特尔边缘计算技术
帖子详情
2007“英特尔杯”全国计算机多核程序设计大赛
streamlet520
2008-04-18 04:08:21
请问你还记得复赛的题目及参考答案吗?
...全文
113
4
打赏
收藏
2007“英特尔杯”全国计算机多核程序设计大赛
请问你还记得复赛的题目及参考答案吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
denghui0815
2008-04-18
打赏
举报
回复
http://download.csdn.net/user/huanyun
在里面有我的这3个题目的解决方案 :)
streamlet520
2008-04-18
打赏
举报
回复
复赛试题-第一题
问题描述:
从一单精度浮点数串中找出乘积最大的连续的4个浮点数。例如在下列浮点数串[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 5.0, 3.0, 3.0, 2.0, 9.0, 1.0, 2.0]找到[4.0,5.0,6.0,5.0].
命令行:
> answer1 data1.dat
输入文件格式:
含有以二进制形式存放的浮点数的文件, 浮点数数量大概在若干千万。
输出结果:
打印该连续4个单元的首单元序号(以零为起始),以及该连续4个单元的乘积。
程序框架:
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <alloc.h>
int main(int argc, char *argv[])
{
float *farray, product;
struct stat buf;
int num,index;
/********************************/
if(stat(argv[1],&buf)) // get the file size
{
printf("The file does not exist\n");
exit(0);
}
num = buf.st_size/sizeof(float);
farray = (float *)malloc(buf.st_size);
FILE *fp=fopen(argv[1],"rb");
fread( farray, sizeof(float), num, fp);
fclose(fp);
/********************************/
/*在这里处理数据*/
/********************************/
/*输出结果*/
printf("乘积=%f 首数的序号=%d\n", product, index);
free(farray);
/********************************/
}
复赛试题-第二题
问题描述:
对于给定的矩形R1,R2...Rn,试图将它们放到一个大的矩形区域A中,任意两矩形Ri,Rj不得有重叠,求满足条件的矩形区域A的最小面积。放置过程中允许对矩形进行旋转。
命令行:
> answer2 data2.dat
输入文件格式:
data2.dat的第一行表示矩形的个数,从第二行起的每一行都有两个数字,由空格隔开,分别表示一个矩形的长和宽。示例:
3
5 2
3 2
1 1
输出结果:
打印满足条件的最小矩形区域A的面积。示例:
18
程序框架:
#include<stdio.h>
#include<malloc.h>
int main(int argc, char* argv[])
{
int num, i, area, *rec; // rec[0],rec[1]为矩形1的长和宽,以此类推。
/***************INPUT***************************/
FILE *fp = fopen(argv[1], "rt");
fscanf(fp, "%d\n",&num);
rec = (int*)malloc(sizeof(int)*2*num);
for(i=0;i<num;i++)
fscanf(fp, "%d %d\n”,rec+2*i, rec+2*i+1);
fclose(fp);
/************************************************/
/*在这里处理数据*/
/****************OUTPUT**************************/
printf("area = %d\n", area);
free(rec)
}
复赛试题-第三题
问题描述:
有a,b,c,d,e五个城市,假设城市间的道路都是单向的,那么我们用(a,b)表示从城市a到城市b有一条道路。那么这样我们就可以把这五个城市间的道路连通集写成这样:
R={(a, a), (a, b), (b, d), (d, b), (c, e)}。
表示a->a,a->b,b->d,d->b,c->e各有一条通路。
然而这种表示方法虽然很直观,但是不利于计算机处理。所以人们通常用二值矩阵的形式表示,取矩阵中对应相关元素相交处的值为1,其它地方的的值为0。于是可以得到如下矩阵:
a b c d e
a┌ 1 1 0 0 0 ┐
b│ 0 0 0 1 0 │
B =c│ 0 0 0 0 1 │
d│ 0 1 0 0 0 │
e└ 0 0 0 0 0 ┘
根据传递性,如果 a->b, b->c, 则a->c。在以上矩阵中,a与b相连且b与d相连,因为(a,b)和(b,d)在R中,所以可以从a经过一定的路径到达d。 但 (a,d)不在集合R中,这就是隐含关系,我们将包含这些隐含关系的集合记为R+。
所以R+={(a, a), (a, b), (a, d), (b, b), (b, d), (d, b), (d, d), (c, e)}。
这个集合包含(a, d), (b, b), (d, d)是根据传递性定义(即由a->b, b->d, 推出a->d; 由b->d, d->b, 推出b->b; 由d->b, b->d, 推出d->d而来的。描述关系R+的矩阵如下:
a b c d e
a┌ 1 1 0 1 0 ┐
b│ 0 1 0 1 0 │
B+ =c│ 0 0 0 0 1 │
d│ 0 1 0 1 0 │
e└ 0 0 0 0 0 ┘
题目的要求就是给定一个 N 维的矩阵 B,N <= 1000,求该矩阵的传递闭包B+。
命令行:
Ø answer3 data3.dat
输入文件格式:
data3.dat数据格式如下,其中第一个数 n 表示数据集个数,此后跟随着 n
组测试数据。
示例:
6
0 0 1 0 0 0
0 0 0 1 0 0
0 0 1 0 0 0
1 0 0 0 0 0
1 0 0 0 0 0
0 0 0 1 0 0
输入文件格式:
同上。
程序框架:
#include <omp.h>
#include <stdio.h>
int main()
{
int n;//n<=1000
int b[1000][1000];
int i, j, k;
/********************************/
FILE *fp1=fopen("test.dat","rb");
FILE *fp2;
fread(&n,sizeof(int),1,fp1);
fread(b,sizeof(int), n*n,fp1);
fclose(fp1);
/********************************/
/*在这里处理数据*/
/********************************/
/*输出结果*/
fp2 = fopen("result3.dat","wb");
fwrite(b,sizeof(int),n*n,fp2);
fclose(fp2);
return 0;
/********************************/
}
streamlet520
2008-04-18
打赏
举报
回复
那我有试题,麻烦你帮想个解决方案,OK?
intel_jeff
2008-04-18
打赏
举报
回复
抱歉,我没有看过那次比赛的题目。
“
英特尔
杯
”
全国
计算机
多核
程序设计
大赛
源码
“
英特尔
杯
”
全国
计算机
多核
程序设计
大赛
源码 供大家讨论.
参加
英特尔
多核
平台编程优化
大赛
的源码和优化文档
在T2050笔记本上测试结果双精度0.671秒 单精度:0.312秒 希望能看到其他高手的代码 学习学习! :) 更希望 高手指点更多的优化点. 优化建议.
intel
2007
复赛试题-第一题
复赛试题-第一题,哟必要吗,太简单了
“
英特尔
杯
”
全国
计算机
多核
程序设计
大赛
复赛试题--第二题
问题描述: 对于给定的矩形R1,R2...Rn,试图将它们放到一个大的矩形区域A中,任意两矩形Ri,Rj不得有重叠,求满足条件的矩形区域A的最小面积。放置过程中允许对矩形进行旋转。命令行:> answer2 data2.dat输入文件格式:data2.dat的第一行表示矩形的个数,从第二行起的每一行都有两个数字,由空格隔开,分别表示一个矩形的长和宽。示例:35 23
“
英特尔
杯
”
全国
计算机
多核
程序设计
大赛
复赛试题-第三题
问题描述: 有a,b,c,d,e五个城市,假设城市间的道路都是单向的,那么我们用(a,b)表示从城市a到城市b有一条道路。那么这样我们就可以把这五个城市间的道路连通集写成这样: R={(a, a), (a, b), (b, d), (d, b), (c, e)}。 表示a->a,a->b,b->d,d->b,c->e各有一条通路。 然而这种表示方法虽然很直
英特尔边缘计算技术
567
社区成员
7,024
社区内容
发帖
与我相关
我的任务
英特尔边缘计算技术
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
复制链接
扫一扫
分享
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章