博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2010年10月20日

摘要: 对于信息学奥赛,有教师认为是好事,应该受到重视,也有教师认为奥赛辅导太累,且获奖不易,学生成了奥赛的“牺牲品”,希望取消奥赛。那么我们该怎么样正确看待信息学奥赛呢? 信息学奥赛为学生提供了一个学习、竞争和表现的平台。通过信息学奥赛,调动了广大青少年学习计算机的积极性,使更多的青少年课外接触和学习计算机科学知识,提高了他们的逻辑思维能力、解决实际问题的能力、协作能力和沟通能... 阅读全文

posted @ 2010-10-20 16:53 桃子在路上 阅读(1262) 评论(0) 推荐(1)

摘要: 由于待处理的数据超过了任何一种数据类型所能容纳的范围,因此必须采用数串形式输入,并将其转化为数组。该数组的每一个元素对应一个十进制数,由其下标顺序指明位序号。由于高精度运算可能使得数据长度发生变化,因此除要用整数数组存储数据外,还需要一个整数变量纪录整数数组的元素个数,即数据的实际长度。type numtype=array[1..255] of byte;var a:numtype; la:byt... 阅读全文

posted @ 2010-10-20 11:30 桃子在路上 阅读(515) 评论(0) 推荐(0)

摘要: 快速排序是基于分治排序算法,在数据规模很大的情况下一般使用该算法。 算法主过程如下: procedure qsort(L,R:longint); var i,j,mid,temp:longint; begin i:=L; j:=R; mid:=a[L+random(R-L+1)]; {随机选择一个数组中的数作为对比数} repeat while a[i]< mid do inc(i); ... 阅读全文

posted @ 2010-10-20 11:26 桃子在路上 阅读(279) 评论(0) 推荐(0)

摘要: 【开心的金明】 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N 元。于是,他把每件物品规定了一个重要度,分为5 等:用整数1~5 表示,第5 等最重要。他还从因特... 阅读全文

posted @ 2010-10-20 11:22 桃子在路上 阅读(1897) 评论(0) 推荐(0)

摘要: 【0/1背包问题】 在0/1背包问题中,需对容量为c 的背包进行装载。从n 个物品中选取装入背包的物品,每件物品i 的重量为wi ,价值为pi 。对于可行的背包装载,背包中物品的总重量不能超过背包的容量,最佳装载是指所装入的物品价值最高,即p1*x1+p2*x1+...+pi*xi(其1<=i<=n,x取0或1,取1表示选取物品i) 取得最大值。【输入文件】第一行一个数c,为背包容量。... 阅读全文

posted @ 2010-10-20 11:21 桃子在路上 阅读(634) 评论(0) 推荐(0)

摘要: 【能量项链】 在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头标记为m,尾标记为r,... 阅读全文

posted @ 2010-10-20 11:20 桃子在路上 阅读(323) 评论(0) 推荐(0)

摘要: 【石子合并】 在一个圆形操场的四周摆放着n 堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。 试设计一个算法,计算出将n堆石子合并成一堆的最小得分和最大得分。 【输入文件】包含两行,第1 行是正整数n(1<=n<=100),表示有n堆石子。第2行有n个数,分别表示每堆石子的个数。 【输出文件】输出两行。 第1 行... 阅读全文

posted @ 2010-10-20 11:19 桃子在路上 阅读(1856) 评论(0) 推荐(0)

摘要: 【最长递增子序列】 给定数列A1,A2,...An,求最长递增子序列输入: 第一行一个整数n,表示有n个数(n<=1000) 第二行n个整数,用空格隔开。输出: 最长递增子序列长度。【分析】 在求以Ai为末元素的最长递增子序列时,找到所有序号在Ai前面且小于Ai的元素Aj,即j<i且Aj<Ai。如果这样的元素存在,那么对所有Aj,都有一个以Aj为末元素的最长递增子序列的长度S(j... 阅读全文

posted @ 2010-10-20 11:17 桃子在路上 阅读(3790) 评论(0) 推荐(1)

摘要: 【骑士游历问题】 设有一个m×n的棋盘(2≤m≤50,2≤n≤50),在棋盘上任一点有一个中国象棋“马”,马走的规则为:马走日字;马只能向右走。当m,n给出后,同时给出马起始的位置和终点的位置,试找出从起点到终点所有路径的数目。输入: m,n,x1,y1,x2,y2 (分别表示m,n、起点坐标和终点坐标)输出: 路径数目(若不存在,则输出... 阅读全文

posted @ 2010-10-20 11:16 桃子在路上 阅读(3208) 评论(0) 推荐(1)

摘要: 一、动态规划程序设计的基本概念 1、阶段k 将所给问题的过程,按时间或空间特征分解成若干相互联系的阶段,以便按次序去求每个阶段的解。设阶段变量为k。 2、状态Sk 各阶段开始的客观条件叫做状态,常用Sk表示各阶段的状态变量,Sk是k阶段的状态集合。 每个阶段的状态都是由以前阶段的状态以某种方式“变化”而来,这种“变化”称为状态转移。 将各阶段按照一定... 阅读全文

posted @ 2010-10-20 11:15 桃子在路上 阅读(436) 评论(0) 推荐(0)

摘要: 【最短路径问题】 下图给出了一张地图,地图中每个顶点代表一个城市,两个城市间的连线代表道路,连线上的数值代表道路长度,求从A地到E地的最短路径。 【分析】本题可以利用深度搜索法求解,伪代码如下:var s:未访问的城市集合; dist[i,j]:存储任意两个城市间的距离数组; {0表示不连通}function search(city):integer; {求城市city到城市E的最短距离} beg... 阅读全文

posted @ 2010-10-20 11:13 桃子在路上 阅读(861) 评论(0) 推荐(0)

摘要: 住在乌托邦首都(编号为1)的天凯,开始对首都的交通情况感到不满,因为,他发现首都到某些城市,即使他选择最短的路径,距离也非常远。因此他想让你求一下交通中心城市是哪座城市(也有可能就是首都)。 为了说明交通中心城市的概念,先定义G[i]为距离城市i最远的城市(到城市i的最短路径长度最长的城市)到城市i的距离。那么交通中心城市都是G[i]最小的城市,如果有几个城市的G[i]一样小,则是编号最小的那个。... 阅读全文

posted @ 2010-10-20 11:12 桃子在路上 阅读(222) 评论(0) 推荐(0)

摘要: 乌托邦有n个城市,某些城市之间有公路连接。任意两个城市都可以通过公路直接或间接到达,并且任意两个城市之间有且仅有一条路径。 每条公路都有自己的长度,这些长度都是已经测量好的。小修想从一个城市出发开车到另一个城市,并且她希望经过的公路总长度最长。请问她应该选择哪两个城市?这个最长的长度是多少? 【输入文件】wutuo.in 第一行一个整数n(表示n个城市,n≤100),以下n-1行每行三个整数... 阅读全文

posted @ 2010-10-20 11:09 桃子在路上 阅读(449) 评论(0) 推荐(0)

摘要: 在一个地图上有n(n≤20)个地窖,每个地窖中埋有一定数量的地雷,给出地窖之间的联系路径。当地窖极其连接的数据给出之后,某人可以从任一处开始挖地雷,然后可以沿着指出的连接往下挖(仅能选择一条路径),挖雷的过程中允许某人重复经过地窖。当无连接时,挖地雷工作结束。请编程设计一个挖地雷的方案,使某人能挖到的最多的地雷。 【输入文件】miner.in n(地窖个数)v1 v2 v3 ... vn (... 阅读全文

posted @ 2010-10-20 11:08 桃子在路上 阅读(547) 评论(0) 推荐(0)

摘要: 已知字母A,B和一组字母变换规则(至多100个规则): A1->B1 A2->B2 规则的含义为:如果A=Ak,可以通过一次变换为Bk(1≤k ≤ 规则数) 求从A到B最少需要几次变换。 【输入文件】letter.in 第一行为两个字母,分别是初始字母和变换目标字母。 以下k行为变换规则(1 ≤ k ≤ 100),都是大写字母,两个字母间以空格间隔,直到文件结束... 阅读全文

posted @ 2010-10-20 11:07 桃子在路上 阅读(238) 评论(0) 推荐(0)

摘要: 某大学准备在校园网中构建校园网络,已知在校园网中选好了N(N<1000)个点,并准备在这些点安装网络设备和电脑。若要将N个点互相连接起来,问怎样布线才能使得总距离最短,两点间的布线长度等于这两个点的几何距离。【输入】network.in输入文件的第一行为一个正整数N(1≤N≤100)。接下来N行,每行2个数U,V ,表示坐标。【输出】network.out输出最短路径距离(保留两... 阅读全文

posted @ 2010-10-20 11:05 桃子在路上 阅读(175) 评论(0) 推荐(0)

摘要: 所谓拓扑序列,就是有向图的最长路径问题,如果图中存在环,则最长路径是无法求得的,所以有拓扑序列的有向图不可以存在环。具体定义如下: 给出有向图G=(V,E),若结点的线形序列V1,V2,...Vn满足条件:对于i,j(1≤j<i≤n),Vi和Vj之间没有边。求线形序列V1,V2,...Vn的过程就称为拓扑排序,这个线形序列就称为拓扑序列。【拓扑排序主要思想】有向图可以拓扑排序的条... 阅读全文

posted @ 2010-10-20 11:03 桃子在路上 阅读(4596) 评论(0) 推荐(0)

摘要: 在一张顶点带权的无向图中,计算含顶点数最多的一个连通分支和顶点权和最大的连通分支。【输入】 n(顶点数,1≤n≤20) 以下n行,其中第i行是顶点i的权 e(边数,1≤e≤210) 以下e行,每行为有边连接的一对顶点【输出】 含顶点数最多的一个连通分支 顶点权和最大的一个连通分支  【输入样例】 62102085751 51 62 34 65 6 【输出样例】 1->... 阅读全文

posted @ 2010-10-20 11:02 桃子在路上 阅读(538) 评论(0) 推荐(0)

摘要: 输入一张无向图,指出该图中哪些结点对之间有路。该问题通常采用传递闭包的计算方法。【输入】 n(顶点数,1≤n≤20) e(边数,1≤e≤210) 以下e行,每行为有边连接的一对顶点【输出】 k行,每行两个数,为存在通路的顶点对序号i,j(i<j)  【输入样例】 651 51 62 34 65 6 【输出样例】 1 41 51 62 34 54 65 6 progr... 阅读全文

posted @ 2010-10-20 11:01 桃子在路上 阅读(520) 评论(0) 推荐(0)

摘要: Dijkstra算法中要求边的权非负,如果遇到负权,则可以采用Bellman-Ford算法。【Bellman-Ford算法思想】 【Bellman-Ford算法实例】  【输入样例】 6101 2 -101 5 191 6 212 3 52 4 62 6 113 4 -64 5 184 6 145 6 -331 4  【输出样例】 length=-111->2->3->4 pro... 阅读全文

posted @ 2010-10-20 10:59 桃子在路上 阅读(718) 评论(0) 推荐(1)

摘要: 求有向图的所有环,此问题包括了求最大环或者最小环。【输入】 第一行两个数v,e,分别代表图的顶点数和边数,以下e行,每行为有连接的两个顶点和权。 【输出】 顶点编号和环的长度以及包含该顶点的环的路径。  【输入样例】 huan.in5 71 2 22 1 12 5 43 2 53 4 74 1 35 4 6 【输出样例】 huan.out1 3 1->22 3 2->14 15 4-&... 阅读全文

posted @ 2010-10-20 10:58 桃子在路上 阅读(513) 评论(0) 推荐(0)

摘要: 设图G=(V,E)是一个有向图,对于每对结点(U,V),找出从U到V的最短路径。【Floyd算法思想】 利用一个三重循环产生一个存储每个结点最短距离的矩阵.【Floyd算法实例】 现有一张城市地图,图中的顶点为城市,无向边代表两个城市间的连通关系,边上的权代表城市之间的距离。求每个城市的最短距离【输入】 第一行两个数v,e,分别代表城市数和边数 以下e行,每行为两个顶点和它们之间的边权。 【输出】... 阅读全文

posted @ 2010-10-20 10:57 桃子在路上 阅读(594) 评论(0) 推荐(0)

摘要: 设图G=(V,E)是一个有向图,它的每一条边(U,V)都有一个非负权W(U,V),在G中指定一个结点V0,要求从V0到G的每一个结点Vj的最短路径找出来(或指出不存在)。 由于源结点V0是给定的,所谓称为单源最短路径。【Dijkstra算法思想】 把所有结点分为两组。 第一组:包含已确定最短路径的结点。 第二组:包含尚未确定最短路径的结点。 按最短路径长度递增的顺序把第二组的结点加到第一组中... 阅读全文

posted @ 2010-10-20 10:55 桃子在路上 阅读(534) 评论(0) 推荐(0)

摘要: 无向图的生成树就是从图的边集中选择一些边,使得这些边构成一个连通无环图,也就是树。如果给每一条边加一个权,所有生成树中权和最小的生成树称为最小生成树。【Prim算法思想】任意时刻的中间结果都是一棵树,每次花费最小的代价,用一条边把不在树中的结点加进来。【最小生成树算法实例】 现有一张城市地图,图中的顶点为城市,无向边代表两个城市间的连通关系,边上的权代表公路造价。在分析了这张图后发现,任一对城市都... 阅读全文

posted @ 2010-10-20 10:53 桃子在路上 阅读(589) 评论(0) 推荐(0)

摘要: 【量水问题】 有两个无刻度的量杯A和B,其容积分别为m升和n升(m>n),现在允许用量杯从水缸里取水或将水倒回水缸里,而且两个量杯中的水也可以相互倾倒,试设计计算机程序求出在m升的量杯中准确量得k升(k<n<m)所需的最少操作步数。 (每一个取水或倒水都算一个操作步数) 【输入文件】ls.in仅一行,三个数,分别为m,n,k。【输出文件】ls.out仅一行,为最少步数。【样例数据... 阅读全文

posted @ 2010-10-20 10:50 桃子在路上 阅读(1230) 评论(0) 推荐(0)

摘要: 【聪明的打字员】 阿兰是某机密部门的打字员,出于保密的需要,该部门用于输入密码的键盘是特殊设计的,键盘上没有数字键,而只有以下六个键:Swap0, Swap1, Up, Down, Left, Right,定义录入区的6个位置的编号,从左至右依次为1,2,3,4,5,6。下面列出每个键的作用:  Swap0:按Swap0,光标位置不变,将光标所在位置的数字与录入区的1号位置的数字(左起第一个数字)... 阅读全文

posted @ 2010-10-20 10:49 桃子在路上 阅读(979) 评论(0) 推荐(0)

摘要: 九宫格中有8个数码,其中只有一个空,规则是只能把一个数码移动到空的格子中,要求从一个初始状态移动到一个目标状态所要花费的最少步数。如下图 初始状态2831647 5目标状态12386475 【算法分析】 解决此类问题的办法是宽度搜索,深度搜索耗时太大无法接受。当需要移动的步数很多时,普通的宽度搜索仍旧无法满足需要,需要对其进行优化。 这个问题也可以推广到流行的拼图游戏。【具体步骤】一、确定问题规模... 阅读全文

posted @ 2010-10-20 10:44 桃子在路上 阅读(470) 评论(0) 推荐(0)

摘要: 枚举法(通常也称穷举法)是指在一个有穷的可能的解的集合中,枚举出集合中的每一个元素,用题目给定的约束条件去判断其是否符合条件,若满足条件,则该元素即为整个问题的解;否则就不是问题的解。 【枚举算法解题必须满足下列条件】⑴ 可预先确定解元素的个数n,且问题的规模不是很大;⑵ 对于每个解变量A1,A2,…An的可能值必须为一个连续的值域。【枚举算法实现】通常使用嵌套的FOR结构循环语句枚... 阅读全文

posted @ 2010-10-20 10:40 桃子在路上 阅读(3199) 评论(0) 推荐(0)

摘要: Run time errors Free Pascal生成的应用程序也许会生成一些运行错误,当应用程序发现某个确定的异常情况时,这里列出了错误代码,并且解释产生的原因。1 Invalid function number 错误的功能代码 尝试错误的操作系统调用. 2 File not found 文件未找到 程序试图删除(erase),重命名( rename),打开(open)一个不存在的文件. 3... 阅读全文

posted @ 2010-10-20 08:48 桃子在路上 阅读(851) 评论(0) 推荐(0)

摘要: 随机数是指理论上没有规律可循、在指定范围内每个数的出现几率相等、无法根据之前的数来预测下一个数的数列。一般随机数生成器的基本原理是:首先初始化一个随机种子,其初始值可以是任意的整数;在每次获取随机数时,以随机种子为基础进行某种特殊的运算,获得一个随机数并返回之,然后再对随机种子进行某种运算,改变随机种子的值。这样,就可以生成许多比较随机的数,但同一个初始值的随机种子将会生成完全相同的随机数列。Pa... 阅读全文

posted @ 2010-10-20 08:37 桃子在路上 阅读(2150) 评论(0) 推荐(0)

摘要: 求绝对值函数abs(x)定义:functionAbs(X):(Sametypeasparameter);说明:X可以是整型,也可以是实型;返回值和X的类型一致例子:varr:Real;i:Integer;beginr:=Abs(-2.3);{2.3}i:=Abs(-157);{157}end. 取整函数int(x)定义:functionInt(X:Real):Real; 注意:X是实型数,返回值也... 阅读全文

posted @ 2010-10-20 08:36 桃子在路上 阅读(327) 评论(0) 推荐(0)

摘要: break 是用来退出其所在的循环语句即: 不论在任何一个循环语句中 执行了 break 的话, 马上退出这个语句。相当于 : goto 这一层循环语句 最末尾一句的下一句。例如:var i : integer;beginfor i := 1 to 10 dobegin{1} writeln(i);break;writeln(i+1);end;readlnend.执行结果 :1 可见 第一次循环 ... 阅读全文

posted @ 2010-10-20 08:34 桃子在路上 阅读(809) 评论(0) 推荐(0)