急求NOIP2009普及组试题

NOIP2009普及组复赛试题

1.多项式输出

(poly.pas/c/cpp)

问题描述

n次一元多项式可以由下面的表达式表示:

1 0

1

1 f (x) a x a xn...阿x阿

n

n

n = +?+ + +

,≠ 0不适用

其中,

I a x称为第I项,I a称为第I项的系数。给出一元多项式的次数和系。

数,请按照下面指定的格式要求输出多项式:

1.多项式中的自变量是x,多项式从左到右降序排列。

2.多项式只包含系数不为0的项。

3.如果多项式n次项系数为正,则“+”号不出现在多项式的开头,如果多项式n次项系

如果数字是负数,多项式以“-”号开始。

4.对于不是最高顺序的项,用“+”或“-”将此项与前一项连接起来,分别表示该项。

该系数为正或负。后面跟着一个正整数,表示这个系数的绝对值(如果一个项高于0,

如果其系数的绝对值是1,则不需要输出1)。如果x的指数大于1,则接下来的指数部分的形状。

公式为“x b”,其中b为x的指数;如果X的指数是1,那么后面的指数部分的形式就是“X”;

如果x的指数为0,只需要输出系数。

5.在多项式中,多项式的开始和结束都不包含多余的空格。

投入

输入文件名是poly.in,* * *有2行。

第一行,1整数,n,代表一元多项式的次数。

第二行有n+1个整数,其中第I个整数代表第n-i+1项的系数,每两个整数之间用一个空格。

网格分离。

输出

输出文件poly.out ***1行,按照题目描述的格式输出多项式。

输入和输出样本1

聚进聚出

100 -1 1 -3 0 10

100x^5-x^4+x^3-3x^2+10

输入和输出样本2

聚进聚出

-50 0 0 1

-50x^3+1

数据范围

1 ≤ n ≤ 100,多项式项的系数绝对值都小于100。

全国信息学奥林匹克联赛(NOIP2009)复赛推广组

第3页* * *第6页

2.分割线的描绘

(score.pas/c/cpp)

问题描述

世博会志愿者的选拔正在一个城市如火如荼地进行着。为了选拔最合适的人才,一个城市是对的

所有报名的选手都有笔试,笔试成绩达到面试成绩的选手才能进入面试。面试分数线根

按照150%的计划招生,即如果计划录取m个志愿,面试成绩为m*150%。

(四舍五入)选手成绩,最终进入面试的选手都是笔试成绩不低于面试分数线的选手。

玩家。

现在请写一个程序划定面试分数线,输出所有进入面试的选手的报名号和笔试成绩。

性能。

投入

输入文件名是score.in

第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用空格隔开,其中

n代表报名参加笔试的选手总数,M代表计划报名的志愿者人数。保证输入数据为m*150%。

向下舍入后的n或更少。

从第二行到第n+1行,每一行都包括两个整数,中间用空格隔开,是玩家的注册号k。

(1000 ≤ k ≤ 9999)和选手笔试成绩s(1 ≤ s ≤ 100)。这些数据确保了玩家的注册号码是不同的。

不一样。

输出

输出文件score.out

第一行,有两个整数,中间用空格隔开,第一个整数代表面试分数线;第二个整数是

参加面试的实际人数。

从第二行开始,每行包含两个整数,中间用空格隔开,分别代表进入面试的选手。

按照笔试成绩从高到低输出报名人数和笔试成绩。如果分数相同,报名人数从小到大。

顺序输出。

投入产出样本

得分,得分,出局

6 3

1000 90

3239 88

2390 95

7231 84

1005 95

1001 88

88 5

1005 95

2390 95

1000 90

1001 88

3239 88

样本描述

M*150% = 3*150% = 4.5,四舍五入为4。保证四人进入面试的分数线是88,但是因为88

有重分,所以88分以上的选手都可以进入面试,所以最后有5个人进入面试。

全国信息学奥林匹克联赛(NOIP2009)复赛推广组

第4页* * *第6页

3.细胞分裂

(cell.pas/c/cpp)

问题描述

汉克斯博士是生物技术领域的著名专家。现在,他正在研究细胞固体。

测试准备:培养细胞样本。

汉克斯博士现在有N种细胞,编号从1~N,一个I型细胞可以分裂成1秒。

Si同源细胞(Si为正整数)。现在他需要选择某些细胞中的一个,放在培养皿中,这样它就可以自由分裂。

去培养。一段时间后,将培养皿中的所有细胞均分到m个试管中,形成m个样本。

用于实验。汉克斯博士有大量的试管m,普通计算机的基本数据类型无法存储这么大的数量。

M值,不过还好M总能表示成m1的m2次方,也就是2。

1

M = m m,其中m1和m2是基本的。

数据类型是可以存储的正整数。

注意,整个实验过程中不允许分裂单个细胞。例如,如果在某个时间培养皿中有4个细胞,

汉克斯博士可以将它们分成两个试管,每个试管两个,然后开始实验。但是如果培养皿里有5个,

一个细胞,医生不能把它们分成两个试管。此时,医生只能等待一段时间,让细胞成功。

继续分裂,让数量平分,或者干脆换另一个细胞培养。

为了尽快开始实验,汉克斯博士总是选择一个细胞开始培养,得到的细胞“刚刚好”

好的,你可以平均分成m个试管。“停止细胞培养,开始实验。现在医生想知道选哪个。

细胞培养可以让实验最早开始。

投入

输入文件名是cell.in,* * *有三行。

第一行有一个正整数n,代表细胞种类的数量。

第二行有两个正整数m1,m2,中间用空格2隔开。

1

M m表示试管总数m。

第三行有n个正整数,第I个数Si表示第I个细胞在1秒后可以分裂成同类细胞。

数数。

输出

输出文件cell.out ***的一行是整数,表示从细胞培养开始到实验开始的时间。

最短时间(秒)。

如果无论汉克斯博士选择哪个单元都不能满足要求,那么输出整数-1。

输入和输出样本1

单元格。输入单元格。输出

1

2 1

-1

I/O示例1描述

1秒后,细胞分裂成三个,2秒后,细胞分裂成九个,...可见无论怎么分。

裂,细胞数是奇数,所以你永远分不到两个试管。

全国信息学奥林匹克联赛(NOIP2009)复赛推广组

第5页* * *第6页

输入和输出样本2

单元格。输入单元格。输出

2

24 1

30 12

2

I/O样本2描述

1细胞最早可在3秒后等分24支试管,第二个细胞最早可在2秒后等分(每

试管144/(241)=6)。所以实验最快2秒就能开始。

数据范围

对于50%的数据,有2

1

m m ≤ 30000 .

对于所有数据,有1 ≤N≤ 10000,1 ≤m1 ≤ 30000,1 ≤m2 ≤ 10000,1≤Si≤2000。

4.公路游戏

(game.pas/c/cpp)

问题描述

肖鑫正在玩一个简单的电脑游戏。

游戏中有一条环形道路,道路上有N个机器人工厂,相邻的两个机器人工厂之间有一小段。

道路连接。肖鑫以一个机器人工厂为起点,将N个机器人工厂按顺时针顺序编号如下

1~n,因为道路是圆形的,所以第n个机器人工厂和1机器人工厂由一条道路连接。

一起。肖鑫连接机器人工厂的N段道路也编号为1~n,规定I段道路连接I-th。

机器人工厂和i+1机器人工厂(1 ≤ i ≤ n-1),第N段路连接第N个机器人工厂和1。

机器人工厂。

游戏过程中,每个单位时间内每条路上都会有一些金币,金币的数量会随着时间的变化而变化。

变化,即不同单位时间内同一路段出现的金币数量可能不同。肖鑫需要机器人。

只有在你的帮助下,你才能在路上收集金币。所需的机器人必须用一些金币在机器人工厂购买,而机器

人一旦被收买,就会沿着环形道路顺时针走,单位时间走一次,也就是说,

从当前的机器人工厂到下一个机器人工厂,并收集路上所有的金币。

以肖鑫为例,肖鑫在i(1 ≤ i ≤ n)机器人工厂购买了一台机器人,这台机器人将从I购买

从机器人工厂出发,在路上顺时针走,第一次走会经过I路,到达i+1机器人劳动。

工厂(如果i=n,机器人将到达1机器人工厂)并收集所有通往肖鑫的I路上的金币。

在游戏中,环形道路上不能同时有两个或两个以上的机器人,每个机器人最多只能

足够在环岛上走p圈了。当肖鑫购买一个机器人时,他需要为这个机器人设置行走的次数并行走。

次数可以是1 ~ p之间的任意整数,路上的机器人走了指定次数,就会自动消失,很小。

新必须立即在任何机器人工厂购买新机器人,并为新机器人设定新的行走时间。

数数。

以下是游戏的一些补充说明:

1.游戏从肖鑫第一次购买机器人开始计时。

2.买个机器人,设定机器人的行走次数,瞬间完成,不需要时间。

3.购买机器人和机器人行走是两个独立的过程。机器人走路的时候,不能买机器人,买。

机器人完成后,设定好机器人行走的次数,机器人就可以行走了。

4.在同一个机器人工厂买机器人的成本是一样的,但是在不同的机器人工厂买机器。

人的开销不一定一样。

5.购买机器人花费的金币,并在游戏结束时从新收集的金币中扣除,这样游戏结束后。

程不用担心因为没有足够的金币买机器人而玩不了游戏。正因为如此,

游戏结束后,收集的金币数量可能是负数。

现在我们知道单位时间内每段路出现的金币数量,在每个机器人工厂购买机器人。

请告诉肖鑫费用。M单位时间后,扣除购买机器人的费用,肖鑫最多能

收集了多少金币。

投入

输入文件名是game.in

第一行有三个正整数,n,m,p,含义如题所述。

在接下来的n行中,每行有m个正整数,每两个整数之间用空格隔开,在空格中跟踪I行。

描述了I路单位时间内的金币数(1 ≤金币数≤ 100),即I线的j。

(1 ≤ j ≤m)的个数表示第j个单位时间内第I路出现的金币数。

最后一行有n个整数,每两个整数之间用一个空格隔开,其中第I个数用I机表示。

机器人工厂购买机器人需要的金币数(1 ≤金币数≤ 100)。

输出

输出文件game.out ***包含1个整数,也就是说在m单位时间内,扣除机器人购买。

花费金币后,肖鑫最多能收集多少金币?

投入产出样本

游戏开始游戏结束

2 3 2

1 2 3

2 3 4

1 2

数据范围

对于40%的数据,2 ≤ n ≤ 40,1 ≤m≤ 40。

对于90%的数据,2 ≤ n ≤ 200,1 ≤m≤ 200。

对于100%的数据,2 ≤ n ≤ 1000,1 ≤m≤ 1000,1 ≤ p ≤m M。