计算机程序设计竞赛-第1讲

合集下载

acm程序设计教程 course(1)初识ACM

acm程序设计教程 course(1)初识ACM

2011-9-5
38



2009-6-9 讨论湖南省大学生计算机程 序设计竞赛湖南师范大学具体实施方案 2009-6-10 下发2009年湖南省大学生计 算机程序设计竞赛湖南师范大学选拔赛 通知(数计院、物信院、工学院) 2009-6-15 正式选拔 2009-7-4 开学典礼 7-10——8-10 暑假集训
2011-9-5
6
ACM/ICPC in China

中国大陆高校从1996年开始参加ACM/ICPC—— 前六届中国赛区设在上海,由上海大学承办; 2002年由清华大学和西安交通大学承办; 2003年由清华大学和中山大学承办。 2004年由北京大学和上海交通大学承办。 2005年由四川大学、北大和浙大承办。 2006年由上海大学、清华和西电承办。 2007年:北航、南航、吉大、西华 2008年:哈工程、北交、合肥、杭电、西南民大
35
2011-9-5
今年比赛

2011(9.14-9.15) 湖南农业大学
2011-9-5
36
第三部分
我校ACM相关情况
2011-9-5 37
组建过程


Байду номын сангаас
2009-5-7 ACM/ICPC华中南区程序设 计大赛选拔考试(小范围,数计学院) 2009-5-8 组队报名、竞赛介绍、简单 培训 5月29日至5月31日 参加ACM/ICPC华 中南区程序设计大赛(湖南大学)
参赛队组成




ACM-ICPC以团队的形式代表各学校参赛, 每个 赛区的优胜队伍将获得参加ACM国际大学生程序 设计竞赛全球总决赛资格。 亚洲区的高校可以组队参加亚洲的任何一个或者 几个赛区的比赛,但每所高校最多只能有一队可 以获得参加全球世界决赛的资格。 每队由一名教练和三名队员组成, 有些赛区还允许 有一名候补队员。 亚洲区的每位参赛选手在一年内最多可参加两个 赛区的亚洲区预选赛, 每位选手最多可以参加五届 亚洲区预选赛和两届全球总决赛。

第1讲 程序设计的一般步骤ok资料

第1讲 程序设计的一般步骤ok资料

第1讲C++语言入门学习目标1、了解计算机语言发展的3个阶段。

2、理解程序设计的一般步骤。

3、掌握什么是算法。

4、掌握对给定的问题进行算法描述。

5、学会编写简单的程序。

随着科技的发展和社会的进步,计算机已经走入寻常百姓家。

人们可以使用同一台计算机做不同的事,我们可以看到其他机器或设备做不到这点。

计算机之所以能执行不同的工作任务,是基于其硬件和软件协同工作的工作机制。

要使计算机按人们指定的步骤有效地工作,必须事先编制好一组让计算机执行的指令,这就是程序。

随着计算机软件技术的发展,人们可以使用不同的计算机语言来编写程序。

一、计算机语言发展要使计算机按照人的规定完成一系列的工作,首先要解决一个“语言”沟通问题:在人和计算机之间找到一种两者都能识别的特定的语言,使计算机具备理解并执行人们给出的各种指令的能力。

这种特定的语言称为计算机语言,也叫程序设计语言,它是人和计算机沟通的桥梁。

随着计算机技术的迅速发展,程序设计语言经历了由低级向高级发展的多个阶段,程序设计方法也得到不断的发展和提高。

计算机语言按其发展程度可以划分为:机器语言、汇编语言和高级语言。

1、机器语言计算机并不能理解和执行人们使用的自然语言。

计算机能够直接识别的指令时由一连串的0和1组合起来的二进制编码,称为机器指令。

每一条指令规定计算机要完成的某个操作。

机器语言是计算机能够直接识别的指令的集合,它是最早出现的计算机语言。

例如,下图所示的是某一种型号计算机的一组二进制编码机器指令,用来完成一个简单加法操作。

1011000000001001000001000000100011110100显然,用机器语言编写的程序“难学、难记、难写、难检查、难调试”,给使用者带来很大的不便。

机器语言编写的程序另一个缺点是完全依赖于机器硬件,不同型号的机器语言指令不相同,程序的可移植性差。

其优点是计算机能直接识别、执行效率高。

2 、汇编语言20世纪50年代初,为了克服机器语言的缺点,人们对机器语言进行了改进,用一些容易记忆和辨别的有意义的符号代替机器指令。

第1讲续:程序等几个基本概念

第1讲续:程序等几个基本概念

编辑 file.c
编译 file.obj
连接 file.exe
执行 结果
言:需要先经过编译和连接程序 产生可执行文件的语言,如java/C/C++等 ->开发人员编译连接 • 解释型语言 解释型语言:不需要经过编译和连接的过 程,直接在特定的程序或环境下即可执行 的语言,如:JavaScript/Python等 ->自动编译连接
基本概念(三)
• 编 译
1)把高级语音的源代码转换成机器码的过程 2)之前还会进行前期处理 3)过程中会进行语法检查 4)编译器:完成编译动作的程序,最终生成目 目 标文件
• 链 接
将目标文件与所用到的函数库文件建立关联和连 接的过程,最终生产可执行文件
键盘输入 源程序 磁盘文件 目标文件 执行文件
基本概念(二)
•什么是程序?(有何作用) 什么是程序?
– 我们必须通过指令,指挥计算机执行我们想要它做 的动作 – 而依照顺序执行的一组指令就是程序
•什么是程序设计? 什么是程序设计?
– 编写程序的过程
•什么是语言? 什么是语言?
– 一种交流的工具
• 什么是程序设计语言? 什么是程序设计语言?
– 是一种描述程序的工具,是用来表达(由人控制计算 机运行的)指令的一种方法
基本概念(一)
• 信 息 数、图形、图像、声音、视频、气味等。 • 数 据 是计算机程序处理的对象,可以是整数、实数、 字符,也可以是图像、声音等的编码 编码表示。 编码 • 数据类型 指数据的不同类别,主要有整型、实型、字符型、 字符串、布尔型、二进制数值等。 • 数据结构 指数据与数据间存在一种或多种特定关系。与数 据结构密切相关的便是数据的类型和数据的存放。

c语言程序设计竞赛辅导1

c语言程序设计竞赛辅导1
记a,b,c分别为所猜数据d除以3,5,7后的余数, 则d=70*a+21*b+15*c。 则建立数学模d=70*a+21*b+15*c的过程如下:
8/4/2013
12
d = 7 0 *a + 2 1 *b + 1 5 * c
a、b、c的系数必须满足:
1)b、c的系数能被3整除,且a的系数被3整除余1;
printf(“The number of >=90 is“%d”,num);
8/4/2013
}
17
【例2】开灯问题:有从1到n依次编号的n个同学 和n 盏灯。1号同学将所有的灯都关掉;2号同学
将编号为2的倍数的灯都打开;3号同学则将编号
为3的倍数的灯作相反处理(该号灯如打开的,则
关掉;如关闭的,则打开);以后的同学都将自
2. 算术运算的妙用
1) 减化或避免条件判断
【例1】一次考试,共考了五门课。统计五十个学生
中至少有三门课成绩高于90分的人数。 实 现 要 点 :
1)对每个同学,先计算其成绩高于90分的课程 数目,若超过3,则累加满足条件的人数中。 2)用二重循环实现以上过程,外层循环模拟50
个同学,内层循环模拟五门课程。
8/4/2013
哥 德 巴 赫 猜 想 ) , 或 通 过 程 序 进 行 大 量
是 否 正 确 可 以 通 过 数 学 方 法 证 明 ( 就 象
是 利 用 数 学 知 识 建 模 的 过 程 。 “ 感 知 ”
的 组 数 等 于 与 的 最 大 公 约 数 。 这 就
问 题 与 最 大 公 约 数 有 关 , 即 循 环 移 动
3、5和7并得到三个余数。你把这三个余数告诉计算机,

NOI初级教程

NOI初级教程
二、分区联赛特点和历史回顾
从 1995 年第一届分区联赛开始,已经比较成熟了。题目的难度和考查 范围从总体来说是逐年增加。初赛主要是靠平时的积累。其中选择题部分各 年差别比较大,考查的范围很不相同。坦白地说,初赛的题目水平并不是很 高,虽然题目有时看起来不大规范,不过从另一方面讲,在选拔复赛选手的 角度讲,初赛题目还是比较成功的。只要基础好(选择题和填空题),有耐 心(完善程序)和细心(写运行结果),初赛一般都能得到高分。 至于复赛, 全是上机完成。
6、已知 N*N 个数据成方阵排列: A11 A12 A13 ... A1n A21 A22 A23 ... A2n ... An1 An2 An3 ... Ann 已知 Aij=Aji, ( 1 ) 、 将 A11,A21,A22,A31,A32,A33... 存 储 到 一 维 数 组 A(1),A(2),A(3)...A(K) 给出 i,j 写出求 K 的表达式:_________________ ( 2 )、 将 A11,A12,...A1n,A22,A23,...A2n,A33... Ann 存 储 到 一 维 数 组 A(1),A(2),A(3)...A(K), 给出 i,j 写出求 K 的表达式:_________________
4、根据后缀表达式,写出前缀及中缀表达式 ABC/DE+GH-/*+ 前:_________________中:_________________ [说明]:这两题考查了数据结构中的表达式树。
5、用一个字节来表示整数,最高位用作符号位(1 为正,0 为负),其他位表示数 值: (1)、这样的表示法称为原码表示法,表示数的范围为:_________________ (2)、原码表示法,将出现_________________有两种表示 (3)、实际上计算机中是用补码表示数,其表示范围为:_________________ [说明]:考查了数的原码,补码表示形式,知道了原码就是直接二十进制的 转化,补码是反码的基础上加 1,而补码只对非正数应用。

计算机程序设计竞赛-第1讲[详版课资]

计算机程序设计竞赛-第1讲[详版课资]
ELSE print -x
也可以用汉字伪代码表示:
若 x为正 打印 x
打印 -x
也可以中英文混用,如:
IF x print x
ELSE print -x
23
课堂优质
1.4 算法的表示
❖用计算机语言表示算法 ▪ 概念: 用计算机语言描述算法,就是用计算机语言编写程序。 计算机是无法识别流程图和伪代码的。只有用计算机语 言编写的程序才能被计算机执行。 ▪ 特点: 设计算法的目的是为了实现算法。 用计算机语言表示算法,必须严格遵循所用的语言的语法 规则。
✓自然语言 ✓传统流程图 ✓N-S流程图 ✓伪代码 ✓计算机语言
8
课堂优质
1.4 算法的表示
❖传统流程图(流程图)
美国国家标准化协会ANSI(American National Standard Institute)规定了一些常用的流程图符号:
起止框
判断框
处理框
输入/输出框
注释框
流向线
连接点
9
课堂优质
26
课堂优质
1.5 算法复杂度的分析
❖ 算法的复杂性越高,所需的计算机资源越多。 ❖ 最重要的计算机资源是时间资源与空间资源。 ❖ 需要计算机时间资源的量称为时间复杂度,需要计算机空
间资源的量称为空间复杂度。 ❖ 时间复杂度与空间复杂度集中反映算法的效率。
27
课堂优质
1.5 算法复杂度的分析
✓ 一个算法的时间复杂度是指算法运行所需的时间。 一个算法的运行时间取决于算法所需执行的语句(运算)的 多少。 算法的时间复杂度通常用该算法执行的总语句(运算)的数 量级决定。
例1-4 估算以下程序段所代表算法的时间复杂度。 for(k=1;k<=n;k++) for(j=1;j<=k;j++)

浙江大学 acm程序设计竞赛 动态规划讲义

浙江大学 acm程序设计竞赛 动态规划讲义

Tom

的 烦 恼
Tom的烦恼 按结束时间排序,枚举结束时间作为 当前状态,以前状态就是该结束时间 对应的起始时间,这是已经确定的.
Tom

文 字 游 戏
文字游戏(fairfox邀请赛1) 给你一份单词表,和一个句子。求出该句 子能有多少中不同的划分方法.例如: 单词是ab cd a b c d 句子是abcd 他共有4种完全划分方案: ab/cd a/b/c/d a/b/cd ab/c/d; 当前状态就是单词在句子中向后靠的位置, 以前状态就是确定这个单词位置以后,除 掉这个单词长度后的一个位置.状态转移 方程是:F[i]:=F[i]+F[ilength(word[j])] IOI中有一题《前缀》也是类似的题目.
拦 截 导 弹

拦 截 导 弹


状态的表示-f[i],表示当第i个导 弹必须选择时,前i个导弹最多能拦 截多少。 每个导弹有一定的高度,当前状态 就是以第i个导弹为最后一个打的导 弹。以前状态就是在这个导弹以前 打的那个导弹。 显然这是十分能够体现状态间的联 系的题目。
最 长 公 共 子 串

给定起点站和终点站还有 L1,L2,L3,C1,C2,C3,求出要从 起点到终点最少要花多少钱.
买 车 票
怎 么 办
当前所在的某个车站
买 车 票
这一题的以前状态其实只有3种.即 满足3种距离(收费)情况的3个车站. 要知道这3个车站可以先做一个预 处理.显然这3个车站在满足距离限 制的条件下应该越远越好.

可以看出动态规划的实质就是
动 态 规 划 的 实 质

这也就是为什么我们常说动态 规划必须满足重叠子问题的原 因.记忆化,正符合了这个要求.

信息学奥林匹克竞赛教程

信息学奥林匹克竞赛教程

第一课初识Pascal语言信息学奥林匹克竞赛是一项益智性的竞赛活动,核心是考查选手的智力和使用计算机解题的能力。

选手首先应针对竞赛中题目的要求构建数学模型,进而构造出计算机可以接受的算法,之后要写出高级语言程序,上机调试通过。

程序设计是信息学奥林匹克竞赛的基本功,在青少年朋友参与竞赛活动的第一步必须掌握一门高级语言及其程序设计方法。

一、Pascal语言概述PASCAL语言也是一种算法语言,它是瑞士苏黎世联邦工业大学的N.沃思(Niklaus Wirth)教授于1968年设计完成的,1971年正式发表。

1975年,对PASCAL语言进行了修改,作为“标准PASCAL语言”。

PASCAL语言是在ALGOL60的基础上发展而成的。

它是一种结构化的程序设计语言,可以用来编写应用程序。

它又是一种系统程序设计语言,可以用来编写顺序型的系统软件(如编译程序)。

它的功能强、编译程序简单,是70年代影响最大一种算法语言。

二、Pascal语言的特点从使用者的角度来看,PASCAL语言有以下几个主要的特点:⒈它是结构化的语言。

PASCAL语言提供了直接实现三种基本结构(顺序、分支、循环)的语句以及定义“过程”和“函数”(子程序)的功能。

可以方便地书写出结构化程序。

在编写程序时可以完全不使用GOTO语句和标号。

这就易于保证程序的正确性和易读性。

PASCAL 语言强调的是可靠性、易于验证性、概念的清晰性和实现的简化。

在结构化这一点上,比其它(如BASIC,FORTRAN77)更好一些。

⒉有丰富的数据类型。

PASCAL提供了整数、实型、字符型、布尔型、枚举型、子界型以及由以上类型数据构成的数组类型、集合类型、记录类型和文件类型。

此外,还提供了其它许多语言中所没有的指针类型。

沃思有一个著名的公式:"算法+数据结构=程序"。

指出了在程序设计中研究数据的重要性。

丰富的数据结构和上述的结构化性质,使得PASCAL可以被方便地用来描述复杂的算法,得到质量较高的程序。

信息学奥赛第一讲-Pascal入门

信息学奥赛第一讲-Pascal入门

上机操作练习一


【题目描述】Hello,world! 2016年3月,由谷歌公司研发的围棋人工智能程序(AlphaGo)以 4:1的总比分战胜世界围棋冠军、职业九段选手李世石。随后数年间, 更强大、更智能的人工智能程序如雨后春笋般涌现。 人工智能逐步渗入了人类的军事、经济、政治等各领域,最终引 发了威胁魔法世界人类生存的重大危机,但据说当第一个拥有独立人 格和意识的人工智能程序体最初来到这个世界时,它曾经友善而好奇 地在屏幕上输出一行“Hello,world!"。 【输出格式】 输出一行“Hello,world!"的字符串(不包含双引号),注意字符均 为半角字符。注意程序为标准输入输出格式,由评测软件自动评测而 不是人工评测,所以上交的代码无需添加暂停命令。 【输出样例】 Hello,world!



怎么描述算法?
我们可以用自然语言或者是用流程图来描述算法
自然语言描述算法:
例1.1 有三个杯子:A杯装着白开水、B杯装着红茶,C杯空着。 想要把A杯和B杯里的内容交换过来,需要怎样做呢? (1)A杯的白开水倒给C杯; (2)将B杯的红茶倒给A杯; (3)将C杯的白开水倒给B杯; 例1.2 交换A和B的值。 (1)将A的值给C; (2)将B的值给A; (3)将C的值给B;
Pascal语言概述
自然语言 信息交流(地位平等) 有思维、推理能力 语法规则、句法规则灵活 (可省略、颠倒) 表达方式多样
Pascal语言 人机对话(命令方式) 有计算、逻辑判断的能力 语法句法固定 (按部就班) 算法多样
学习要点:学会Pascal的语法、句法; 学会算法分析与算法设计;
Pascal语言的特点
两个误区

误区1 信息学竞赛 = “计算机”竞赛

第1讲 计算机与程序设计

第1讲 计算机与程序设计

机器语言
10110000 00001001 00000100 00001000 11110100
计算机能够直接识别 的语言 。
汇编语言
MOV AL,9
ADD AL,8
汇编语言和机器语言实 质是相同的,都是直接 对硬件操作,只不过指 令采用了英文缩写的标 识符,容易识别和记忆
高级语言
Print 8+9
1.什么是硬件? 2.列出典型计算机系统的6种基本组件? 3.计算机的哪个部分长时间保存数据,即使未通电? 4.列举一些输入设备? 5.您将从计算机向外界输出数据的设备称为什么? 6.什么是软件 ? 7.软件类别分为几种?它们的名称各是什么? 8.什么是编译器? 9.什么是解释器? 10.”机器语言”是什么意思?
由于船小,农夫一次只能带其中的一样过河。 如无人看管,狼要吃羊,羊 要吃菜。问农夫如何安排过河,才能使狼、羊、菜都安然无恙。
渡河的方法与步骤:
第一步:农夫带着羊渡过河去; 第二步:农夫划船回来; 第三步:农夫带着菜渡过河去; 第四步:农夫带着羊划船回来; 第五步:农夫带着狼渡过河去; 第六步:农夫划船回来; 第七步:农夫带着羊渡过河。
好好学习 天天向上
第一课:计算机与程序设计
目标
01.计算机基础 02.计算机语言与程序设计 03.算法
PART 01
计算机基础
硬件:是指组成计算机的所有设备或组件.
输出 设备
输入 设备
辅助存 储器
主存 (RAM)
中央处 理器
主存 (ROM)
软件:是一系列按照特定顺序组织的计算机数据和序.例如:操作 系统(windows,linux)
和汇编语言相比,它不 但将许多相关的机器指 令合成为单条指令,并 且去掉了与具体操作有 关但与完成工作无关的 细节。

第1章 ACM国际大学生程序设计竞赛简介

第1章 ACM国际大学生程序设计竞赛简介
2012-3-15
ACM-ICPC的历史 的历史
• 该项竞赛从 该项竞赛从1970年举办至今已历 届(2010年) 年举办至今已历35届 年举办至今已历 年 • 两个阶段:区域预赛、世界总决赛 • 区域预赛:在上一年的9月~12月在各大洲举行 区域预赛:在上一年的 月 月在各大洲举行 • 世界总决赛:在每年的 世界总决赛:在每年的3~4月举行 月举行 • 各预赛区第一名自动获得参加世界决赛的资格?!
2012-3-15
其它教学参考书
编 号 1 2 3 4 5 6 7 书 名 作 者 王建德 柴晓路 吴文虎 王建德 吴文虎 王建德 吴文虎 王建德 吴文虎 倪兆中 王 帆 王建德 吴永辉 王建德 吴永辉 出版社 复旦大学出版社 清华大学出版社 清华大学出版社 电子工业出版社 清华大学出版社 人民邮电出版社 人民邮电出版社 出版 时间 1999.1 1997 1997 1998 1998 2008.7 2009.10 国际大学生程序设计竞赛试题解析 青少年国际和全国信息学(计算机 奥林匹 青少年国际和全国信息学 计算机)奥林匹 计算机 克竞赛指导––组合数学的算法与程序设计 克竞赛指导 组合数学的算法与程序设计 青少年国际和全国信息学(计算机 奥林匹 青少年国际和全国信息学 计算机)奥林匹 计算机 克竞赛指导––图论的算法与程序设计 克竞赛指导 图论的算法与程序设计 实用算法的分析与程序设计 ACM国际大学生程序设计竞赛试题与解 国际大学生程序设计竞赛试题与解 析(一) 实用算法分析与程序设计 程序设计中常用的解题策略
2012-3-15
其它教学参考书
编 号 8 9 10 书 名 作 者 吴文虎 赵 鹏 王晓东 卢开澄 出版社 清华大学出版社 电子工业出版社 清华大学出版社 出版 时间 1999 2003.1 2000.1 1993–1996美国计算机程序设计竞赛试题 美国计算机程序设计竞赛试题 与解析 计算机算法设计与分析 算法设计与分析

ACSL美国计算机科学联赛-Intermediate Division中级-Contest 1竞赛1-Programming Problem程序设计问题

ACSL美国计算机科学联赛-Intermediate Division中级-Contest 1竞赛1-Programming Problem程序设计问题

INTERMEDIATE DIVISION PROGRAMMING PROBLEMWRAP AROUND CODEPROBLEM: This is yet another in a long list of ACSL code programs. You would think wewould have run out of them by now. In this program you will be given a set of letters to encode. The difference here is that different rules are used for different letters and the counting process starts where the last letter ends. Using the numerical value of each letter (A=1, B=2, … Z= 26) the rules are as follows :As an example, if the set of letters to encode consists of the letters B, G and Z, then the B with a numerical value of 2 encodes to a 4. Counting 4 letters from A produces an E. The G, with a numerical value of 7, encodes to a 5. Counting down 5 letters from the E produces the letter J. The Z with a numerical value of 26 has 13 as its largest factor. Counting 156 letters ( 12 * 13) has the effect of wrapping around the alphabet 6 complete times and ending at J. The encoded solution for the letter set B, G, I is E J J.INPUT : There will be 5 input lines. Each will consist of a series of upper case letters and will end with a $. You may enter the letters one at a time. The commas shown are for clarification and do not have to be entered. The $ is not encoded.OUTPUT: For each set of letters, print the results of the encoding.SAMPLE INPUT SAMPLE OUTPUT1. B,G,Z,$ 1. E J J2. A,R,J,$ 2. C O T3. A,C,S,L,$ 3. C I E CNote: Students have 72 hours in which to submit a solution. Students may not consult any person for assistance. The program must accept all the data and print all the solutions in one RUN of the program. We suggest that you print the solution for each input prior to entering the next input since, if the program stops, you will not be allowed to enter the remaining data.. Make sure that you put your name, your school name and your division at the top of your program file. Advisors must send to ACSL the program file of all students who score a 10 for the contest.INTERMEDIATE DIVISION PROGRAMMING PROBLEMTEST DATATEST INPUTSTEST OUTPUTS1. A,B,C,$ 1. C G M2.L,U,C,K,$ 2. Y E K A3.A,E,I,O,U,$ 3. C M M K Q4.C,O,N,T,E,S,T,$ 4. G E C W G C W5.M,O,N,T,R,E,A,L,$ 5. Y W U O A K M K。

第1讲 程序和程序设计、算法、结构化程序设计方法

第1讲 程序和程序设计、算法、结构化程序设计方法

传统流程图常用的符号
例1.2 输入一个整数,将它倒过来输出
定义变量X

用自然语言描述:
① 输入一个整数送给x; ② 求x除以10的余数,结果送 给d,并输出d ; ③ 求x除以10的整数商,结果 送给x; ④ 重复② ,③步,直到x变为 零时终止。
输入一个数给X 否 x≠0? 是 d=x%10; 输出d; x=x/10;
肯尼思·汤普森和 丹尼斯·里奇
• 在计算机发展的历史上,大概没有哪个程序设 计语言像C那样得到如此广泛地流行;也没有哪 个操作系统像UNIX那样获得计算机厂家和用户的 普遍青睐和厚爱。它们对整个软件技术和软件产 业都产生了深远的影响。 • 而C和UNIX两者都是贝尔实验室的 Dennis Ritchie和 Kenneth Thompson设计、开发的。 • 他们两人共同获得1983年度的图灵奖。
1. 机器语言
• 由“0”和“1”组成的二进制表示的机器指令的集 合。
例如某种类型的计算机规定以“10000000”表示一个“加 法”操作,以“10010000”表示一个“减法”操作。
• 机器指令一般由操作码和操作数两个部分组成。
• 计算机硬件可以直接识别,因此,它的执行速度 比较快。
• 针对一种计算机所编写的机器语言程序,一般不 能在另一种类型的计算机上运行,而且程序的编 写难度较大,修改、调试也不方便,容易出错, 程序的直观性较差。
1.1 程序与程序设计
• 程序与程序设计
–程序是控制计算机运行的指令序列。 –程序设计就是设计、书写及检查程序的过程。
• 程序设计语言
–程序设计语言是软件系统的重要组成部分 – 程序设计语言是描述计算机指令的工具。 –各种程序设计语言有自己的语法、词汇。 –可分为机器语言、汇编语言和高级语言三类。

ACM 程序设计竞赛入门:第1讲 快速入门

ACM 程序设计竞赛入门:第1讲 快速入门

2020/12/10
13
本类输入解决方案:
C语法:
scanf("%d",&n) ;
for( i=0 ; i<n ; i++ ) {
.... }
C++语法:
cin >> n;
for( i=0 ; i<n ; i++ )
{
....
}
2020/12/10
14
输入(3):
输入不说明有多少个Input Block,但以某 个特殊输入为结束标志。 参见:本校OJ1000
第一讲 快速入门
2020/12/10
1
ACM题目特点:
严格的输入、输出格式;有偏差则不能AC;
追求高效简洁的算法 。即便算法是正确的, 但策略过于复杂,会导致超时;
测试数据庞大;即便算法是正确的,如果在程 序实现时出现误差都会被严密的测试数据查出 而把程序判定为错误的;
强调解决实际问题的能力。赛题与实际应用的 联系很紧密,很多试题被出题者描述成一个有 趣的故事。因此,读题能力、分析能力相当重 要。
2020/12/10
4
困惑:用C/C++的输入/输出?
一般来说,差别不是太大,习惯就好; cin,cout 使用方便;scanf, printf 控制灵 活,在效率上有优势; 不要混用。 千万不要把cout和printf混用,因为cout 是带缓冲的而printf不带,所以会使得输 出的数据顺序混乱。
8
本类输入解决方案:
C语法:
while(scanf("%d %d",&a, &b) != EOF)

《算法竞赛》课件1第1章 绪论

《算法竞赛》课件1第1章 绪论

计算机程序设计语言的发展
4
高级语言
• 高级语言屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采 用具有一定含义的数据命名和容易理解的执行语句。这使得在书写程 序时可以联系到程序所描述的具体事物。
计算机程序设计语言的发展
5
面向对象的语言
• 出发点:
▫ 更直接地描述客观世界中存在的事物(对象)以及它们之间的关系。
▫ 例如,石头、树木、汽车、房屋等都是人们在长期的生产和生活实践中抽象 出的概念。
• 面向对象方法中的"类"
▫ 具有相同属性和服务的一组对象的集合 ▫ 为属于该类的全部对象提供了抽象的描述,包括属性和行为两个主要部分。 ▫ 类与对象的关系:
犹如模具与铸件之间的关系,一个属于某类的对象称为该类的一个实例。
面向对象的方法 -> 面向对象的基本概念
12
封装
• 把对象的属性和服务结合成一个独立的系统单元。 • 尽可能隐蔽对象的内部细节。对外形成一个边界(或者说一道屏障)
,只保留有限的对外接口使之与外部发生联系。
面向对象的方法 -> 面向对象的基本概念
13
继承
• 继承对于软件复用有着重要意义,是面向对象技术能够提高软件开发 效率的重要原因之一。
▫ 是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单 位。对象由一组属性和一组行为构成。
▫ 属性:用来描述对象静态特征的数据项。 ▫ 行为:用来描述对象动态特征的操作序列。
面向对象的方法 -> 面向对象的基本概念
11

• 分类——人类通常的思维方法 • 分类所依据的原则——抽象
▫ 忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出 事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法的表示
✓自然语言 ✓传统流程图 ✓N-S流程图 ✓伪代码 ✓计算机语言
精品PPT
1.4 算法的表示
❖传统流程图(流程图)
美国国家标准化协会ANSI(American National Standard Institute)规定了一些常用的流程图符号:
起止框
判断框
处理框
输入/输出框
注释框
流向线
连接点
year不能 被4整除
非闰年
▪ 能被400整除的年份是闰年, 如2000年。
逐渐缩小判 断的范围
year被 100整除, 又能被 400整除
其他 非闰年
year被4整 除,但不 能被100整 除
闰年
精品PPT
1.4 算法的表示
❖例4 判定2000 - 2500年中的每一年是否闰年,并将结果输出

开始
精品PPT
1.4 算法的表示
流程图表示三种基本结构
▪ 选择结构
Y
p
N
A
B
Y
p
N
A
精品PPT
1.4 算法的表示
流程图表示三种基本结构
▪ 循环结构
p1 N Y
A
当型循环结构
A N p2
Y
直到型循环结构
精品PPT
1.4 算法的表示
❖N-S流程图( N-S图)
由I. Nassi和Shneiderman提出的新的流程图形式,称为 N-S流程图。其三种基本结构的N-S图表示:
▪ 特点: 如一篇文章,自上而下地写下来。每一行(或几行)表示
一个基本操作。它不用图形符号,因此书写方便 、格式紧 凑,也比较好懂,也便于向计算机语言算法(即程序)过渡 。
精品PPT
1.4 算法的表示
❖ 例5: “打印x的绝对值” ,用伪代码表示算法。
用英文伪代码表示:
IF x is positive THEN print x
ELSE print -x
也可以用汉字伪代码表示:
若 x为正 打印 x
打印 -x
也可以中英文混用,如:
IF x print x
ELSE print -x
精品PPT
1.4 算法的表示
❖ 例3 输入50名学生的学号和 成绩,并将50名学生中成绩 高于80分者的学号和成绩输 出。
▪ 算法用N-S图表示,如右图。
▪ 练习:使用流程图表示算法。
1i 输入ni、gi
i+1i 直到i>50
1i

gi≧80

输出ni,gi
i+1i
直到i>50
精品PPT
1.4 算法的表示
计算机程序设计竞赛
精品PPT
课程介绍及要求
❖ 课程类别:全校公选课 ❖ 总学时数:36(实操课) ❖ 开课目的:为信息科学系——竞赛项目:第六届“蓝
桥杯软件人才与设计大赛”培养人才。 ❖ 主要培养学生解决实际问题的编程能力、培养学生的
创新思维。程序是自己设计出来的,而不是某个固定 的方程式。
精品PPT
❖ 例3 流程图如下:
开始 1i
输入ni、gi
i+1i N
i>50 Y

Y 输出ni、gi
N

1i N
gi≧80
i+1i
i>50 Y
结束
精品PPT
1.4 算法的表示
❖例4 判定2000 - 2500年中的每一年是否闰年,并将结果输出

❖闰年的条件:
▪ 能被4整除,但不能被100整除的年份 都是闰年,如2008、2012、2048年。 闰年
主要内容
1
算法——程序设计的灵魂
2
经典算法
3
简单的数据结构知识
精品PPT
1.1 什么是算法
一个程序应包括两个方面的内容: • 对数据的描述:数据结构(data structure) • 对操作的描述:算法(algorithm) 数据结构 + 算法 = 程序 数据结构+算法+程序设计方法+语言工具
精品PPT
1.3 算法的特性
有穷性 一个算法应包含有限的操作步骤,而不能是无限的。 确定性 算法中的每一个步骤都应当是确定的,不能含糊。
输入 有零个或多个输入,从外界获取必要信息。 输出 有一个或者多个输出,得到问题的解。 有效性 每一个步骤有效执行,得到确定的结果。
精品PPT
1.4 算法的表示
2000year
year不能被4整除 N
year不能被100整除 Y
year是闰年
Y
N Y
year不能被400整除
year不是闰年 N
year不是闰年
year是闰年
year+1year year>2500 N
结束 Y
精品PPT
1.4 算法的表示
❖例4 判定2000 - 2500年中的每一年是否闰年,并将结果输出
精品PPT
1.4 算法的表示
开始
1t
2i
t*it
i+1i N
i>5 Y
结束 图1
开始
1t
2i
t*(2*i-1)t
i+1i N
i>5 Y
结束 图2
精品PPT
1.4 算法的表示
流程图的连接点举例

② ③


位置 不够
防止
② 交叉

精品PPT
1.4 算法的表示
流程图表示三种基本结构
▪ 顺序结构 A B

2000year

year%4为0

是 year%100不为0

输出
year 闰年

输出year 闰年
year%400为0 否
输出year 非闰年
输出
year 非闰年
year+1year
Hale Waihona Puke 直到year>2500
精品PPT
1.4 算法的表示
❖用伪代码表示算法 ▪ 概念: 伪代码是用介于自然语言和计算机语言之间的文字和符 号,用来描述算法。
算法是解决“做什么”和“怎么做”的问题。即是为 解决一个问题而采取的方法和步骤。
精品PPT
1.2 简单算法举例
步骤1:先求1×2,得到结果2 步骤2:将步骤1得到的乘积2再乘以 3,得到结果6 步骤3:将6再乘以4,得24 步骤4:将24再乘以5,得120
精品PPT
1.2 简单算法举例
何为算法
“烧水泡茶”有如下五道工序: 1、烧开水2、洗茶壶3、茶杯4、拿茶叶5、泡茶。 烧开水、洗茶壶、茶杯,拿茶叶是泡茶的前提。其中烧开水需要15分 钟,洗茶壶需要2分钟,洗茶杯需要1分钟,拿茶叶需要1分钟,泡茶需 要1分钟。 下面是两种“烧水泡茶”的方法。 方法1: 第一步:烧水; 第二步:水烧开后,洗刷茶具,拿茶叶; 第三步:沏茶。 方法2: 第一步:烧水; 第二步:烧水过程中,洗刷茶具,拿茶叶; 第三步:水烧开后沏茶。
A
p
当p1成立
A
Y
N
B
AB
A
直到p2成立
顺序结构
选择结构
循环结构 (当型)
循环结构 (直到型)
精品PPT
1.4 算法的表示
开始
❖ 例2 求1×2×3×4×5:即求5!的N-S图算法表示:
1t
1t
2i
2i
t*it i+1i 直到i>5 输出t
N-S图
VS
结束
t*it
i+1i
N i>5 Y
输出t
精品PPT
相关文档
最新文档