农夫之子㊣

IT博客 首页 联系 聚合 管理
  0 Posts :: 25 Stories :: 6 Comments :: 0 Trackbacks

NOI&IOI--计算机学习的好地方


IOI简介

国际信息学奥林匹克竞赛(International Olympiad Infornatics,IOI)是联合国教科文组织支持下的一项中学生的学科竞赛,从1989年至今已经举办了十届。 IOI的宗旨是促进世界各国的青少年相互交流,鼓励他们学习、掌握信息科学知识。

IOI每年一次,由各国轮流举办。IOI竞赛规程贯彻奥林匹克精神:公平、公开、公正和严格的竞赛规则,在激烈竞赛的同时促进各国青少年之间的交流,增强友谊。IOI竞赛规程鼓励各国在国内竞赛的基础上组成各自的国家队,但不作硬性限制,由各国自主决定。

信息学奥林匹克竞赛及培训过程,是既动脑又动手的过程,是学习知识、运用知识、解决总是的过程。广大青少年通过参加竞赛,大大激发了他们学习的热情,促进他们养成主动学习和钻研总是的良好习惯。大多数IOI队员进入清华大学计算机系学习,从他们在大学的学习情况看出,中学时养成的这些良好习惯,有助于他们在大学学习时的理论联系实际、主动性、创造性地思维。


 NOI 简介

为了选拔选手参加一年一度的国际奥林匹克信息学竞赛(International Olympiad in Informatics 简称 IOI), 每个参赛的国家都会自行举办国内的选拔, 一般都称为 National Olympaid in Informatics (简称 NOI)。 中国亦有这种比赛, 而且每年在不同的城市举办。



    以下是IOI & NOI的一些网址,里面有许多历年试题,这些题目很有意思,可以当做大家学习计算机相关理论知识的练习题,也可以让大家知道如何用计算机解决实际问题.

IOI官方网站

NOI官方网站

北京市青少年信息学奥林匹克竞赛活动

posted on 2006-09-13 11:29 农夫之子㊣ 阅读(532) 评论(1)  编辑 收藏 引用 所属分类: 算法法设计与分析计算机学习探索

Feedback

# JOHNSON算法 2006-11-07 21:28 农夫之子㊣
Johnson 算法
求解流水作业调度问题的Johnson算法具体描述如下:
(1) 设a[i]和b[i](0<=i<n)分别为作业i在两台设备上的处理时间。建立由三元组(作业号,处理时间,设备号)组成的三元组表d。其中,处理时间是指每个作业所包含的两个任务中时间较少的处理时间。例7-11的作业0的三元组为(0,3,0),作业1的三元组为(1,2,1)……如图7-18(a)所示。
(2) 对三元组表按处理时间排序,得到排序后的三元组表d。如图7-18(b)所示。
(3) 对三元组表的每一项d(i)(0<=i<n),从左右两端生成最优作业排列c[j](0<=j<n),c[j]是作业号。如果d[i]设备号为1,则将作业i置于c的左端末尾,否则置于c的右端末尾。如图7-18(c)所示,由两端想中间存放。


作业号 处理时间 设备号
0 1 2 2
1 0 3 1
2 2 8 1
3 3 9 1

作业号 处理时间 设备号
0 0 3 1
1 1 2 2
2 2 8 1
3 3 10 1
(a)三元组表 (b)按处理时间排序



(0, 2, 3, 1)
(c)最优作业排列

P1 3 8 10 4

P2 6 9 15 2
(d)最优调度方案

程序7-12流水作业调度的Johnson算法。
程序【7-12】Johnson算法
Struct Triplet{ //三元组结构
Int Operator<(Triplet b)const {return t <b.t;}
Int jobNo,t,ab; //jobNo为作业,体委处理时间,ab为设备号
};
Void FlowShop(int n,int *a,int*b,int*c)
{
Triplet d[mSize]={{0,0,0}};
For(int i=0;i<n;i++) //算法步骤(1),生成三元组表d
If (a[i]<b[i]){
d[i].jobNo=i;d[i].ab=0;d[i].t=a[i];
}
Else {
d[i].jobNo=i;d[i].ab=1;d[i].t=b[i];
}
Sort(d,n); //算法步骤(2),任意排序算法
Int left=0,right=n-1;
For(i=0;i<n;i++) //算法步骤(3),生成最优解
If (d[i].ab==0)c[left++]=d[i].jobNo;
Else c[right--]=d[i].jobNo;
}
Johnson算法的时间取决于对作业集合的排序,因此,在最怀情况下算法的时间复杂度为O(nlogn),所需的空间复杂度为O(n).
  回复  更多评论
  

只有注册用户登录后才能发表评论。