2021年北京大学化学院计算概论考题

2021年北大化院计算概论考题

化院的题似乎有两套,我只有这一套

这个版本的班级学的似乎是python

我没有考这套题,暂时不给代码

我记得通过率比较低的题目是5,6,8

进行了一些友情加粗,原题没有qwq

1:小明家里有几亩地?

描述

已知小明家里有一块矩形的地,我们只知道小明家里矩形地的长 h h h和宽 w w w h h h w w w皆为双精度浮点正数,单位为米),并且规定以下换算关系:
1亩 = 666.667平方米
请问小明家里有几亩地(输出小数点后4位)

输入

输入为一行,包括两个双精度浮点数,表示小明家里的地的长和宽(单位为米)

输出

输出为一行,只有一个双精度浮点数,表示小明家里的地有多少亩,保留小数点后4位

样例输入

126.35 300.72

样例输出

56.9939

2:宅男的必备技能

描述

小谈作为一名宅男,吃饭是不可能出去吃饭的。打开外卖APP,个个都是特色,饭菜又好吃,超喜欢点外卖的感觉。然而,作为一名勤俭节约的宅男,充分利用满减和各种优惠又是他的必备技能。
已知某汉堡外卖店有如下优惠,以原价消费55元及以上可以直接减免20元,但也可以选择优惠价,但无法享受满减。下面给出小谈想吃的美食的原价和优惠价格,请帮小谈选择一种最佳的优惠方案。

输入

第一行输入小谈想吃的美食数量 n n n(整数, 1 < = n < = 5 1 <= n <= 5 1<=n<=5);第二行 n n n个用空格间隔的整数,代表每个美食的原价;第三行同样是 n n n个用空格间隔的整数,代表每个美食的优惠价。

输出

如果选择55减20优惠则输出1,如果选择使用优惠价则输出2,如果两者均可以则输出3。

样例输入

样例1:
3
20 5 10
15 3 7

样例2:
4
20 20 5 10
15 17 3 7

样例3:
5
20 5 10 20 15
15 3 7 10 10

样例4:
4
20 20 5 10
15 12 3 5

样例输出

样例1:
2

样例2:
1

样例3:
2

样例4:
3

3:卡特兰数

描述

卡特兰数是一个神奇的正整数序列,如括号序列计数、凸多边形三角剖分的答案都是卡特兰数。在这道题目当中,我们希望你计算出第n个卡特兰数,这个数可以由下面公式计算。

输入

一行,一个正整数 n n n

输出

一行,一个正整数 C n C_n Cn,表示第 n n n个卡特兰数。

样例输入

4

样例输出

14

提示

0 < n < 25

4:分数统计

描述

一次考试包含了若干道选择题,小明想写一个程序自动计算大家的成绩

输入

第一行为两个数字 n n n m m m,以空格分开, n n n表示题目数, m m m表示同学的数量。( 1 < = n < = 1000 1<=n<=1000 1<=n<=1000, 1 < = m < = 1000 1<=m<=1000 1<=m<=1000)
接下来的一行为 n n n个以空格分开的字母,每个字母为 A A A, B B B, C C C, D D D中的一个,表示这道题的答案。
接下来有 m m m行,每行有 n n n个字母,以空格分开,每个字母为 A A A, B B B, C C C, D D D中的一个,表示这名同学这道题的回答。

输出

输出为m行,按照输入顺序每行输出一名同学回答正确的题目数。

样例输入

4 2
A B C D
A C B D
D A B B

样例输出

2
0

5:日历问题

描述

有一种特殊的日历法,它的一天和我们现在用的日历法的一天是一样长的。它每天有10个小时,每个小时有100分钟,每分钟有100秒。10天算一周,10周算一个月,10个月算一年。现在要你编写一个程序,将我们常用的日历法的日期转换成这种特殊的日历表示法。这种日历法的时、分、秒是从0开始计数的。日、月从1开始计数,年从0开始计数。秒数为整数。假设 0:0:0 1.1.2000 等同于特殊日历法的 0:0:0 1.1.0。

输入

第一行是一个整数 N N N ,表示测试样例的数目。 每个测试样例包含一行,格式为: “hour:minute:second day.month.year” 日期总是合法的,并且 2000 < = y e a r < = 50000 2000 <= year <= 50000 2000<=year<=50000.

输出

对于每个测试样例输出一行,该行包含转换后得到的特殊日历表示法,形如:“mhour:mmin:msec mday.mmonth.myear”

样例输入

7 
0:0:0 1.1.2000 
10:10:10 1.3.2001 
0:12:13 1.3.2400 
23:59:59 31.12.2001 
0:0:1 20.7.7478 
0:20:20 21.7.7478 
15:54:44 2.10.20749

样例输出

0:0:0 1.1.0 
4:23:72 26.5.0 
0:8:48 58.2.146 
9:99:98 31.8.0 
0:0:1 100.10.2000 
0:14:12 1.1.2001 
6:63:0 7.3.6848

6:三数之和

描述

给你一个包含 n 个整数的输入,判断其中是否存在三个元素$ a,b,c$ ,使得 a + b + c = 0 a + b + c = 0 a+b+c=0 ?请你找出所有和为 $0 $的三元组的个数。
注意:重复的三元组记作一个。暴力解会导致时间超时。

输入

n n n个整数, n < = 3000 n<=3000 n<=3000

输出

满足条件的三元组的个数

样例输入

-1 0 1 2 -1 -4

样例输出

2

提示

满足条件的三元组分别是[-1,-1,2]和[-1,0,1],共计2个

可以采用排序的方式解答

7:输出回文日期

描述

给定一个日期 x x x x y y z z xxxxyyzz xxxxyyzz,输出从 10000101 10000101 10000101到该日期范围内的所有回文日期。( 10000101 < = x x x x y y z z < = 50001231 10000101<=xxxxyyzz<=50001231 10000101<=xxxxyyzz<=50001231)

输入

输入共一行,输入给定的日期。

输出

输出所有符合条件的日期,以空格分割。

样例输入

11001231

样例输出

10011001 10100101 10111101 10200201 10211201 10300301 10400401 10500501 10600601 10700701 10800801 10900901

提示

输入输出类型均为 i n t int int
输出首先判断是否为合法的日期格式。( 21355312 21355312 21355312虽然是回文的,但显然不是合法日期格式)。
20210229 20210229 20210229 20210431 20210431 20210431都不是合法的日期。

8:【难】星际穿越

描述

小明穿越到了一个扭曲空间,在这个空间中进行移动所消耗的移动成本与方向有关。

在这个空间建立一个笛卡尔坐标系,小明的位置为原点

他每一次可以移动到相邻的 8 8 8个格点处,沿x轴、沿y轴以及沿对角线方向的移动成本分别为 a , b , c a,b,c abc

比如从 ( 0 , 0 ) (0,0) 0,0移动到 ( 1 , 0 ) (1,0) 1,0的成本为 a a a,从 ( 0 , 0 ) (0,0) 0,0移动到 ( 0 , 1 ) (0,1) 0,1的成本为 b b b,从 ( 0 , 0 ) (0,0) 0,0移动到 ( 1 , 1 ) (1,1) 1,1的成本为 c c c

小明为了穿越回去,需要收集散落在空间中的 3 3 3个零件,并最终到达位于 ( 100 , 100 ) (100,100) 100,100处的装置才行,请你帮小明规划一条最短的移动路线,让他尽快可以穿越回去。

输入

输入为 4 4 4
第一行是 a , b , c , a, b ,c, a,b,c以空格分隔,均为非负实数
接下来为 3 3 3行,每行为 s , x , y s, x, y s,x,y,以空格分隔,表示零件的名称 s s s以及 x x x y y y坐标, s s s由不超过 20 20 20个非空字符组成, x , y x,y xy均为整数且 − 100 < x , y < 100 -100<x,y<100 100x,y100

输出

输出为两行
第一行为拾取零件的顺序,将所有零件按顺序输出它们的名称,以空格分隔
第二行为小明从原点移动到装置的最短路径,并保留两位小数

样例输入

1.0 1.0 1.4
Adamantium 92 40
infinity_gauntlet -74 -25
decade_armor 95 72

样例输出

infinity_gauntlet Adamantium decade_armor
339.20

附加题:k柱汉诺塔问题

原题我没有复制。。。简单来说就是给定 n n n个盘子 k k k个柱,求最少移动次数

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值