noip2001 提高组 复赛试题及参考程序(pascal).doc

noip2001 提高组 复赛试题及参考程序(pascal).doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七届(2001)分区联赛复赛解题报告(提高组) 第一题:一元三次方程求解ax3+bx2+cx+d 0? 这样的一个一元三次方程。给出该方程中各项的系数 a,b,c,d? 均为实数 ,并约定该方程存在三个不同实根 根的范围在-100至100之间 ,且根与根之差的绝对值 1。要求由小到大依次在同一行输出这三个实根 根与根之间留有空格 ,并精确到小数点后2位。提示:记方程f x 0,若存在2个数x1和x2,且x1 x2,f x1 *f x2 0,则在 x1,x2 之间一定有一个 根。 样例 输入:1 -5 -4 20 输出:-2.00 2.00 5.00 第二题:数的划分第三题:统计单词个数第四题:CAR的旅行路线 那么Car应如何安排到城市B的路线才能尽可能的节省花费呢?她发现这并不是一个简单的问题,于是她来向你请教。 任务:找出一条从城市A到B的旅游路线,出发和到达城市中的机场可以任意选取,要求总的花费最少。 输入文件:输入文件名p4.in 输 出:p4.out 输出最小费用,小数点后保留1位。 输入格式:第一行为一个正整数n 0 n 10 ,表示有n组测试数据。每组的第一行有四个正整数s,t,A,B。S 0 S 100 表示城市的个数,t表示飞机单位里程的价格,A,B分别为城市A,B的序号, 1 A,B S 。接下来有S行,其中第I行均有7个正整数xi1,yi1,xi2,yi2,xi3,yi3,Ti,这当中的 xi1,yi1 , xi2,yi2 , xi3,yi3 分别是第I个城市中任意三个机场的坐标,T I为第I个城市高速铁路单位里程的价格。 输出格式:共有n行,每行一个数据对应测试数据。 样例 输入 1 1 10 1 3 1 1 1 3 3 1 30 2 5 7 4 5 2 1 8 6 8 8 11 6 3 输出: 47.55 参考程序: 第一题: var y,n,a,b,c,d:real; i:longint; begin assign input,p1.in ;reset input ; assign output,p1.out ;rewrite output ; read a,b,c,d ; for i: -10000 to 10000 do begin n: i/100; y: n*n*n*a+n*n*b+n*c+d; if abs y 1e-5 then write n:0:2, ; end; close input ;close output ; end. 第二题: var n,k:longint; function f n,k,s:longint :longint; var sum,i:longint; begin sum: 0; if k 1 then exit 1 ; for i: s to n div k do sum: sum+f n-i,k-1,i ; exit sum ; end; begin assign input,p2.in ;reset input ; assign output,p2.out ;rewrite output ; readln n,k ; write f n,k,1 ; close input ;close output ; end. 第三题: Var p,k,s,n:integer; ss:string[200]; word:array[1..6]of string[200]; g:array[1..200,1..200]of byte; f:array[1..200,1..40]of integer; w:array[1..200]of byte; function max a,b:integer :integer; begin if a b then exit a ; exit b ; end; procedure inIt; var i,j:integer; s1:string; begin ss: ; readln p,k ; for i: 1 to p do begin readln s1 ; ss: ss+s1; end; n: 20*p; readln s ; for i: 1 to s do readln word[i] ; fillchar g,sizeof g ,0 ; fillchar f,sizeof f ,0 ; for i: 1 to n do begin

文档评论(0)

资料 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档