合肥工业大学第六届程序设计竞赛

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

合肥工业大学第六届程序设计竞赛
星球大战:宇宙的终结
A-黑帝君临
B-流放之路
C-封印之刃
D-成本规划
E-投资计划
F-收集证据
G-拯救公主
H-光剑轨迹
I-绝地重生
二零一零年六月
A. 黑帝君临
Description
西斯皇帝欺骗了议员,控制了议会。

绝地武士传人Dastan为了正义,与西斯决斗。

然而,西斯的天眼看出Dastan是个投机主义者。

于是,西斯告诉Dastan,如果决斗的话会伤害的无辜的人,不如玩一把showhand,输的人将被流放。

ShowHand是一项紧张刺激的赌博游戏(香港赌神、赌侠系列中最常见的赌博方式)。

以五张牌的排列、组合决定胜负。

游戏开始时,每名玩家会获发一张底牌(此牌只能在最后才翻开);当派发第二张牌后,便由牌面较佳者决定下注额,其他人有权选择「跟」、「加注」、「放弃」或「晒冷」。

当五张牌派发完毕后,各玩家翻开所有底牌来比较。

花式说明
黑桃♤>红心♥>方片◇>梅花♣
牌面说明
一共52张牌,TJQKA 13张牌每种花式一套。

(T代表10)
A>K>Q>J>T>9>8>7>6>5>4>3>2
牌型说明
如果没有特殊说明,一般情况下同样的牌型比较最大的那张牌的大小,大小相同则比最大的那张牌的花式。

牌型由大到小依次如下(有兴趣的同学可以验证一下概率)。

No.1同花顺拥有五张连续性同花色的顺子。

以A为首的同花顺(TJQKA)最大。


JQKA2,QKA23,KA234不算顺子。

A2345是最小的同花顺。

No.2铁支四张相同数字的牌,外加一单张。

比数字大小,「A」铁支(AAAA)最大
No.3葫芦由「三条」加一个「对子」所组成的牌,若别家也有此牌型,则比三条数字大小
No.4同花不构成顺子的五张同花色的牌。

先比数字最大的单张,如相同再比第二支、依此类推,如果5张牌大小都相同,那么比它们的花色。

No.5顺子五张连续数字的牌组。

以A为首的顺子最大,如果大家都是顺子,比最大的一张牌,如果大小还一样就比这张牌的花式(JQKA2,QKA23,KA234不算顺子).
No.6三条牌型由三张相同的牌组成,以A为首的三条(AAA)最大
No.7二对牌型中五张牌由两组两张同数字的牌所组成。

若遇相同则先比这副牌中最大的一对,如又相同再比第二对,如果还是一样,比大对子中的最大花式
No.8对子牌型由两张相同的牌加上三张单张所组成。

如果大家都是对子,比对子的大小,如果对子也一样,比这个对子中的最大花色
No.9散牌单一型态的五张散牌所组成,不成对(二对),不成三条,不成顺(同花顺),不成同花,不成葫芦,不成铁支。

先比最大一张牌的大小,如果大小一样,比这张牌的花色。

Input
多组测试数据。

每组输入第一行是一个整数T 代表输入组数。

每组输入一行,每行描述5张扑克,每个描述由一个字符(2-9,TJQKA)和一个数字(0-4分别代表黑桃,红桃,方片,梅花)组成。

每个字符或数字用一个空格隔开。

Output
每组数据,请输出牌型所对应的编号。

Sample Input
4
A 3 Q 3 T 3 K 3 J 3
K 0 K 1 K 2 K 3 A 0
T 0 9 1 T 3 9 3 3 3
K 0 A 1 2 2 3 1 4 1
Sample Output
1
2
7
9
Hint
最后一组牌为K♤A♥2◇3♥4♥不算顺子,输入保证是从一副牌中随机抽出的5张扑克。

B. 流放之路
Description
Dastan输了赌局,在流放之路上,唯一能够带走的只有机器人R2D2。

Dastan还保存了许多绝地剑术视频,但R2D2的硬盘不够大。

所以他不得不把它们转刻到光盘上保存。

于是他想尽可能地利用好光盘的每一bit空间,尽可能把光盘刻得满满的。

现在Dastan手头上拿到了一张空白容量为S MB的光盘,他文件夹里有N个电影,每个电影的大小分别为X1、X2、……、XN,单位为MB。

请你帮他编写一个程序,计算到底光盘最大能刻得多满,单位为MB。

Input
第一个数字为T,表示测试数据的组数,T≤10。

接下来的T行的每行第一个数字为1≤S≤10000,表示光盘的空白容量,第二个数字1≤N≤10000,表示电影的个数,随后的N个整数X1、X2、……、XN表示每个电影的大小(1≤X≤10000)。

Output
共T行,每一行包含一个整数,表示该光盘能刻录的最大容量。

Sample Input
3
4000 3 100 200 300
450 3 100 200 300
100 3 200 300 400
Sample Output
600
400
C. 封印之刃
Description
在流放途中,Dastan听说西斯要把平民变成僵尸。

于是他决定去找先知CydorniaKnight。

CydorniaKnight告诉他,要打败西斯,就得获得存在与两个世界的两把究极光剑—绝地双刃。

其中
一把就是上一代绝地武士yarmu曾使用过的“真理之刃”;然而,yarmu投奔了西斯皇帝并封印了“真理之刃”。

经过一番历险,Dastan在yarmu曾经修炼过的洞窟里找到了“真理之刃”。

然而,一把神奇的锁锁住了真理之刃,所上刻这一系列奇怪的数字。

CydorniaKnight告诉Dastan,这些数字有一个规律,都是组合数:
C(M,N)=M!/(N!(M-N)!)
而开锁的钥匙就是满足条件的最小M
为了拔出真理之刃,Dastan需要计算出所有M
Input
输入数据第一行是一个正整数T 代表锁上数字的个数。

以下T行,每行一个正整数(输入保证是大于1的组合数),代表锁上的每个数。

输入保证答案M不超过33。

Output
对每个数,输出对应的M。

Sample Input
3
6
2
3
Sample Output
4
2
3
D. 成本规划
Description
得到“真理之刃”后Dastan被好心的伯伯Slamantto收留。

Slamantto有一个颜料厂,要购买n 种原料加工颜料。

每种原料由k种物质组成。

每吨红色颜料需要这k种物质各r1,r2,..rk吨,黄色颜料各需y1,y2,..yk吨,蓝色颜料各需b1,b2,…bk吨(ri,yi,bi都是整数)。

现在工厂将要生产red,yellow,blue三种颜料各wr,wy,wb吨。

不幸的是,Slamantto突然去世,留下一个天真的女儿和一帮虎视眈眈的部下争夺这块遗产。

Dastan为了完成伯伯未完成的理想,建立星际最繁华的市场,他需要继承这笔遗产做固定资产。

于是他决定做最优成本规划,作为“继承人的证明”。

Input
多组测试数据。

每组输入第一行是两个正整数n,k(1<=N>=50,1<=K<=8);
第二行k+1个整数,代表wr,r1,r2,…rk;
第三行k+1个整数,代表wy,y1,y2,…yk;
第四行k+1个整数,代表wb,b1,b2,…bk(1<=wx<=100,0<=ri,yi,bi<=1)。

以下n行,每行k+1个数:第一个实数(精确到小数点后两位)代表该原料每吨的价格,后面k 个整数代表该原料每吨所含各种元素的成分。

Output
每组数据,输出Case #t: 满足需求的最小成本,精确到0.01。

Sample Input
5 4
0 1 1 1 1
0 2 1 3 0
1 0 0 0 1
25.00 0 2 0 0
17.95 1 0 0 0
13.00 0 0 1 0
27.50 0 1 1 2
52.87 2 1 3 1
1 1 1 1 1
1 0
2 2 1
1 0 0 0 1
25.00 0 2 0 0
17.95 1 0 0 0
13.00 0 0 1 0
27.50 0 1 1 2
52.87 2 1 3 1
Sample Output
Case #1: 27.50
Case #2: 100.45
Hint
所有测试数据都是随机的,不会出现极限状态(即wr=wy=wb=100,所有ri=yi=bi=1)。

本题限时2000ms 标程的两倍。

AC此题的小盆友有特殊奖励哦~~~
E. 投资计划
Description
总算安顿了下来,Dastan开始准备下一步的投资计划。

他制定了一个未来发展规划。

公司各部门提出的发展项目汇总成了一张规划表,该表包含了许多项目。

对于每个项目,规划表中都给出了它所需的投资或预计的盈利。

由于某些项目的实施必须依赖于其它项目的开发成果,所以如果要实施这个项目的话,它所依赖的项目也是必不可少的。

现在Dastan请你做CEO,从这些项目中挑选出一部分,使公司获得最大的净利润。

Input
仅一组测试数据。

输入文件包括项目的数量N(5<=N<=100),每个项目的预算Ci(-1000000<=Ci<=1000000)和它所依赖的项目集合Pi。

格式如下:
第1行是N;
接下来的第i行每行表示第i个项目(项目编号由1到N)的信息。

每行的第一个数是Ci,正数表示盈利,负数表示投资。

然后是一个数Mi表示它需要Mi个依赖项目。

剩下的Mi个数是项目i所依赖的项目的编号。

每行相邻的两个数之间用一个或多个空格隔开。

Output
输出公司的最大净利润。

Sample Input
6
-4 0
1 0
-1 2 1 2
-3 1 3
5 2 3 4
Sample Output
3
F. 收集证据
Description
Dastan有了足够的资金,为了证明西斯的邪恶,请求宇宙法庭的审判,他派人搜集了西斯把人变成僵尸的资料。

法官关心的问题往往是以下3种:
受害者有多少人年龄是小于X的儿童(青年);
受害者有多少人年龄是等于X的壮年;
受害者有多少人年龄是大于X的中年人(老年人)。

Dastan被问得烦不胜烦,因此他想写一个程序帮他自动回答法官的问题。

现在,已知小镇里有N(1≤N≤100000)个人,每个人的年龄分别为X1、X2、……、XN,其中(1≤X≤130)。

Input
第一行为一个数字N,表示小镇的人数。

接下来的2到N+1行每行是一个整数,表示询问到的一个人的年龄。

第N+2行是一个整数Q(1≤Q≤100000),表示接受的询问次数;
接下来的Q行每行是一个询问,由一个字符和一个数字组成,询问的格式为:
< X 表示查询小于X岁的人的数量;
= X 表示查询等于X岁的人的数量;
> X 表示查询大于X岁的人的数量。

Output
共Q行,每行指对于每个询问,输出查询到的数量。

Sample Input
5
20
40
35
2
40
4
= 40
< 35
> 35
< 2
Sample Output
2
2
2
G. 拯救公主
Description
法庭授权绝地武士逮捕西斯,维护和平。

然而Dastan却听到纳波星球公主被杰吧怪兽俘虏的消息决定前去救援。

Dastan经过重重难关,攻入地牢,拯救公主。

目前Dastan只剩下M(0<=M<=100)点HP.怪兽和守卫散布在地牢里。

当Dastan到达敌人所在位置时,会发生战斗(根据狗血剧情定律,怪兽是不会跑的),Dastan会受到一定伤害,并最终战胜敌人(根据主角不死定律,王子HP为0时先手发动必杀技,直接秒杀敌人)。

对与给定的地图、Dastan和公主坐标。

你的任务是计算Dastan救出公主能够剩下的最多HP。

Input
地牢由一个N*N(2<=N<=10)的矩阵描述,矩阵上’P’代表Dastan,’I’代表公主,’#’代表石柱或墙,’0’代表空地,数字’1’-‘9’代表王子在这里发生战斗,要消耗的HP。

迷宫中Dastan每次只能上下左右地移动1格。

多组测试数据,每组第一行是N和M,以下是N*N的矩阵。

Output
每组数据,如果Dastan能够救出公主,输出所剩的最大HP,否则输出”impossible”。

Sample Input
3 10
P12
9#6
87I
4 100
#13#
P4#I
76##
####
3 5
P63
97I
521
Sample Output
1
impossible
Hint
第一组数据从走上路最后HP为1;第二组数据公主被墙围住,无法救出;第三组数据无论从哪走HP都会降到0(HP不会小于0),然后一路放必杀过关= =b。

H. 光剑轨迹
Description
Dastan正准备拉公主走,这时,黑武士yarmu从公主身后走了出来。

原来公主跟yarmu合作,Dastan遭遇到埋伏。

一番激斗之后,Dastan寡不敌众,被斩断四肢,囚禁在空间站里。

在狱中,Dastan的身体开始腐烂,他用最后的意志去思考对手的招数。

视觉感知系统里,只要确定了光剑头部的初始位置和结束位置,以及手握光剑的位置,就可以确定对手旋转光剑后的伤害的范围。

光剑的头部可以看做一个圆,由于光剑在三维空间里运动所以初始状态的圆与结束状态的圆大小可能不同。

对于一个剑招来说,武士握住剑柄的手可以近似看作固定点。

如图:
已知视觉截面上两个圆的圆心坐标(OX1、OY1)、(OX2、OY2),圆半径R1、R2,和剑柄的坐标(X、Y),请你求出在该截面伤害范围的角度值θ,(0<θ<180)。

Input
第一个数字为T,表示测试数据的组数,T≤20,
每组测试数据第一行为第一个圆的圆心坐标和半径OX1 OY1 R1;
第二行为第二个圆的圆心坐标和半径OX2 OY2 R2;
第三行为剑柄的坐标X Y。

给定的剑柄坐标保证不会在圆里,两个圆也不会相交或包含。

给定的坐标值为浮点数,在[-10000,10000]的范围内,且圆的半径0<R1或R2≤10000。

Output
共T行,每一行包含一个数,表示伤害范围的角度值θ,四舍五入精确到小数点后两位,然后此时如果θ没有满足0.00<θ<180.00的条件,则说明无法构造出光剑的运动轨迹,输出No Ans!
Sample Input
3
1 5 1
5 5 0.5
3 0
1 5 1
5 5 0.5
3 8
1 5 1
5 5 0.5
3 5
Sample Output
59.63
91.45
No Ans!
I.绝地重生
Description
Dastan在冥想中锻炼自己,终于悟出了用原力创造失传的自由之刃的方法。

期间,西斯发动闪电战占领了所有空间。

然而,西斯还不满足,他的野心是整个时空!西斯妄图让过去、现在、未来都由他的统一思想支配。

这时,觉悟的公主启动了时之沙,用自己的灵魂换取时间的回溯。

Dastan 回到地牢,重获肉体。

眼前的是公主冰冷的躯体和杰巴大怪兽迷茫的眼神。

拥有绝地双刃的Dastan 瞬间秒杀了杰巴。

为了让所有生物挣脱枷锁,Dastan必须破解西斯控制生命的方法。

原来,西斯用原力与生命体用RSA进行加密通讯,强迫生命体按他的意志行动。

RSA算法是这样的:
1.接收者选择两个质数p,q记n=p*q;
2.令φ(n)=(p-1)(q-1)选择一个数e使e和φ(n)互质;
3.计算出ed≡1(mod φ(n));
4.丢弃p,q,保留d作私钥,把e和n发送给对方。

现在Dastan截获了e和n,他需要知道d。

Input
输入第一行是一个数T,代表测试数据组数。

以下T行,每行两个正整数,代表e(e<φ(n)),n(n=pq, 2<=p,q<=7930且pq为质数)。

Output
每组数据,输出d。

Sample Input
3
1 6
3 15
5 15
Sample Output
1
3
5。

相关文档
最新文档