江苏大学2021年第一届程序设计大赛(UJSCPC)题面

简介: 江苏大学2021年第一届程序设计大赛(UJSCPC)题面

A. 校门外的树

问题描述

某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,...,L,都种有一棵树。

由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。

输入形式

第一行有两个整数L(1L10000)M(1M100)L LL代表马路的长度,M代表区域的数目,LM之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。

输出形式

输出包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。

样例输入

500 3
150 300
100 200
470 471

样例输出

298

B. 合格的素数

问题描述

A..B之间包含数字D的素数个数。(1AB4000000,BA+1000000)

输入形式

1行,三个整数A,B,D

输出形式

1个整数,满足条件的素数个数

样例输入

10 15 3

样例输出

1

C. 高精度乘法

问题描述

求两个正整数之积

输入形式

共两行,每行一个正整数,每个数小于1000位

输出形式

求两整数的积

样例输入

12
12

样例输出

144

D. 纪念品分组

问题描述

元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得 的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品, 并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。

你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。

数据规模:

50%的数据满足:n15

100%的数据满足:le 2001n3000080W200

输入形式

第1行包括一个整数w,为每组纪念品价格之和的上限。

第2行为一个整数n,表示购来的纪念品的总件数。

n+2行每行包含一个正整数Pi(5Piw),表示所对应纪念品的价格。

输出形式

输出仅一行,包含一个整数,即最少的分组数目。

样例输入

100
9
90
20
20
30
50
60
70
80
90

样例输出

6

E. 愤怒的牛

问题描述

Bessie 设计了一款新游戏:Angry Cows。在这个游戏中,玩家发射奶牛,每头奶牛落地时引爆一定范围内的干草。游戏的目标是使用一组奶牛引爆所有干草。

N NN捆干草排列在数轴上的不同位置。第i ii捆干草的的位置为xi。如果一个威力为R的奶牛在x位置落地,她将引爆[xR,x+R]范围内的所有干草。

你现在可以发射K头奶牛,每头奶牛的威力都R RR,现在你需要确定R RR的最小值,使得用K头奶牛可以引爆所有干草。

输入形式

第一行两个整数N,K(1N5×104,1K10)

接下来N行,第i行一个整数xi(0x109)

输出形式

输出一个整数,即 R 的最小值。

样例输入

7 2
20
25
18
8
10
3
1

样例输出

5

F. 智取金币

问题描述

贝西和她的朋友邦妮挖到了一个宝箱,里面藏着N枚金币!但是金币对奶牛没用,她们一直用这些金币来玩游戏。游戏开始之前,金币会被排成一条队列,在第i个位置的金币价值为Ci。贝西和邦妮轮流取金币,轮到拿的时候,只能选择队列的最前面的那块,或队列最后面的一块,所有金币取完之后,游戏就结束了。

贝西和邦妮都是非常聪明的,她们从不犯错,会采用最好的策略让自己取到的金币价值最大。假设贝西是先手,请帮她计算一下,她最多能拿价值多少的金币?

输入形式

第一行:单个整数:N1N5000

第二行到第N+1行:第i+1行有一个整数:Ci5000

输出形式

单个整数:表示如果双方都按最优策略进行游戏,先手可以拿到的最大价值之和

样例输入

4
30
25
10
35

样例输出

60

G. 合并果子

问题描述

在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。

因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1 11,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。

例如有3种果子,数目依次为129。可以先将12堆合并,新堆数目为3,耗费体力为3。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。所以多多总共耗费体力=3+12=15。可以证明15为最小的体力耗费值。

数据规模:

对于30 % 30%30的数据,保证有n1000

对于50 % 50%50的数据,保证有n5000

对于全部的数据,保证有n10000

输入形式

第一行:是一个整数n(1n10000),表示果子的种类数。

第二行:包含n个整数,用空格分隔,第i个整数ai(1ai20000)是第i ii种果子的数目。

输出形式

输出包括一行,这一行只包含一个整数,也就是最小的体力耗费值。输入数据保证这个值小于231

样例输入

3
1 2 9

样例输出

15

H. 数独

问题描述

将格子填满使得

每一行, 每一列,和每一个小的九宫格恰好包含199个数字,正是由于规则简单而又变化多端,数独一时间风靡全球。

现在,我们希望你能编写一个程序解决数独问题。

输入形式

输入数据一共9 99行,每行有9个字符。输入数据描述了一个待解决的数独,其中,“?”表示数独中的空缺。我们的输入数据总保证有唯一解。

输出形式

输出一共9行,每行9个数字,表示你的答案。

样例输入

5????7??6
?6????5?4
?834?????
???182?4?
??1???9??
?7?369???
?????543?
1?5????9?
7??2????1

样例输出

514927386
967831524
283456179
659182743
321574968
478369215
892615437
135748692
746293851

I. 地平线上的高楼

问题描述

约翰带上她的奶牛到城市里观光,在落日的余晖里,他们看到了城市的高楼的边缘在地平线上形成的美丽图形.

这个图形由N(1N40000)座高楼抽象而成.把地平线看成数轴,每座楼有两个整数的起始坐标和终止坐标AiBi(1Ai<Bi109).当然,每座楼会有一个高度Hi(1Hi109)

请计算这个阴影构成的图形的面积.

输入形式

第一行输入N

之后N行每行输入三个整数AiBiHi

输出形式

阴影构成的图形的面积.

样例输入

4
2 5 1
9 10 4
6 8 2
4 6 3

样例输出

16

样例说明

第1座楼和第4座楼有面积为1的重合部分.所以总面积为3 × 1 + 1 × 4 + 2 × 2 + 2 × 3 − 1 = 16。

J. 天天爱跑步

问题描述

小 C 同学认为跑步非常有趣,于是决定制作一款叫做《天天爱跑步》的游戏。《天天爱跑步》是一个养成类游戏,需要玩家每天按时上线,完成打卡任务。

这个游戏的地图可以看作一棵包含n 个结点和 1 条边的树,每条边连接两个结点,且任意两个结点存在一条路径互相可达。树上结点编号为从1 到  的连续正整数。现在有m 个玩家,第 i 个玩家的起点为 Si ,终点为Ti 。 每天打卡任务开始时,所有玩家在第0秒同时从自己的起点出发,以每秒跑一条边的速度,不间断地沿着最短路径向着自己的终点跑去,跑到终点后该玩家就算完成了打卡任务。(由于地图是一棵树,所以每个人的路径是唯一的)

小 C 想知道游戏的活跃度,所以在每个结点上都放置了一个观察员。在结点j jj的观察员会选择在第Wj秒观察玩家,一个玩家能被这个观察员观察到当且仅当该玩家在第Wj秒也正好到达了结点j。 小 C 想知道每个观察员会观察到多少人?

注意:我们认为一个玩家到达自己的终点后该玩家就会结束游戏,他不能等待一段时间后再被观察员观察到。 即对于把结点j作为终点的玩家:若他在第Wj秒前到达终点,则在结点j jj的观察员不能观察到该玩家;若他正好在第Wj秒到达终点,则在结点j 的观察员可以观察到这个玩家。

输入形式

第一行有两个整数n nnm mm。 其中n nn代表树的结点数量,同时也是观察员的数量,m mm 代表玩家的数量。

接下来n1行每行两个整数uv vv,表示结点u到结点v有一条边。

接下来一行n个整数,其中第j jj个整数为Wj ,表示结点j jj出现观察员的时间。

接下来m行,每行两个整数SiTi ,表示一个玩家的起点和终点。 对于所有的数据,保证1Si,TinWjn

输出形式

输出1 11n 个整数,第 j 个整数表示结点 j 的观察员可以观察到多少人。

样例输入

6 3
2 3
1 2
1 4
4 5
4 6
0 2 5 1 2 3
1 5
1 3
2 6

样例输出

2 0 0 1 1 1

样例说明

对于 1 号点,W1=0 ,故只有起点为 1 号点的玩家才会被观察到,所以玩家 1 和玩家 2 被观察到,共 2 人被观察到。

对于 2 号点,没有玩家在第 2 秒时在此结点,共 0 人被观察到。

对于 3 号点,没有玩家在第 5 秒时在此结点,共 0 人被观察到。

对于 4 号点,玩家 1 被观察到,共 1 人被观察到。

对于 5 号点,玩家 2 被观察到,共 1 人被观察到。对于 6 号点,玩家 3 被观察到,共 1 人被观察到。


目录
相关文章
集美大学第九届程序设计竞赛
集美大学第九届程序设计竞赛
72 0
|
7月前
|
机器学习/深度学习 算法 数据挖掘
24届秋招天津市勘察设计院集团有限公司技术序列岗位面经
24届秋招天津市勘察设计院集团有限公司技术序列岗位面经
|
存储 算法 C++
西安石油大学2023年第三届里奇杯编程大赛(初赛)
西安石油大学2023年第三届里奇杯编程大赛(初赛)
51 0
大学、软件外包——为大一学生答疑
【来信】  贺老师,我在学习方面我有点迷茫,有点偏离航向,而且找不到驶行的动力了。老师 我一直不明白我们这个专业(软件外包)是干嘛的。说的明白一点,我们是不是替外国人打工的啊? 我们需要在公司做些什么东西啊? 我个人认为这个专业还是不错的,但是我一直对这个专业不了解,所以在学习上一直不积极,我经历了上个学期本来想找到一个好的解释,但是我什么也没找到。所以我请求您帮我分析一下,以帮助我更好的融入
1562 0
|
人工智能 大数据 量子技术
沈向洋博士致2018届毕业生的公开信:计算机科学的三堂人生课
上周五,沈向洋博士在美国华盛顿大学计算机科学与工程学院的年度毕业典礼致辞,他回顾了早年求学时候的经历,分享了从量子计算、人工智能和混合现实三种技术中总结出的三种人生经验。
1226 0
下一篇
DataWorks