考试总结(2017.12.28)

本文解析了三道算法题目,包括一场搜索题、一道图论题以及一道最小生成树问题。搜索题需通过回溯与剪枝求解;图论题涉及特殊字典序排序的单词,需构建图并通过拓扑排序解决;最小生成树问题则需通过克鲁斯卡尔算法求解。

嘿嘿

共三题,1道搜索,2道图论,时间150分钟。

T1

小x在jzyz开了一家冷饮店,因为刚开张,他决定做一次促销活动。而活动的获奖者可以免费得到一杯圣代。
为了和同学的生活贴近,小x费劲脑汁想到了一个促销方案:
1) 当场摇出一个正整数M,再摇出两个正整数X和Y
2) 每个人可以在1..M这M个自然数中挑出N个不同的数。
3) 如果某人可以在现场把这N个数的倒数的累加和恰好等于X/Y,那么这个人可以得到一杯圣代。
4) 每种方案只限第一名想到答案的领取一杯圣代。
现在小x苦恼的是,对于给定的N,M,X,Y,他能否尽快得知他最多要准备多少杯圣代。

考试思路:一道搜索题,回溯+剪枝,然而我剪枝剪错了。

T2

Bessie发现了一些很奇怪的残缺的字典,这些字典的单词是按照某种特殊的字典序排序的,现在Bessie给你多组按照特殊字典序给出的单词组,问你能不能给出这些字母的先后顺序。
比如按顺序给出4个单词:ula uka klua kula al。这里只有四个小写字母,分别是:u l k a。 根据首字母我们知道 uka,根据klua 和 kula 知道 lu,于是我们知道字典序是luka.
比如给定另4个单词:jaja baba baja beba。我们发现既有jb,也有bj,存在矛盾的先后关系,对于此种情况,我们输出 “!”。
再比如给定3个单词:marko darko zarko ,无法确定一些的关系,对于这种情况,我们输出 “?”
输入:
多组数据
每组数据第一行一个整数N (1≤ N ≤ 100)
接下来N行,每行一个单词,保证单词由小写字母组成,且长度不超过10.
输出:
多行,每行按要求输出相应的结果

考试思路:每2个单词间比较,找到第一个不同的字母,然后建图,最后拓扑跑一边
然而我不会多组数据的读入。。。
正解:跑拓扑时如果队列中同时有2个元素,说明不能确定。
如果没有拓扑序,说明相矛盾。

T3

小x当上了银河系的国王,一共统治了N个星球,现在帝国要建立N-1条星际隧道,将所有的星球全部连接起来。
每个星球都有自己的立体坐标。xA,yA,zA表示星球A的三维坐标,xB,yB,zB分别表示星球B的三维坐标.在A和B两个星球建立通道的代价是:
Cost[A,B] = min{ |xA-xB|, |yA-yB|, |zA-zB| }
现在小x想知道,最少要花费多少代价,能将这N个星球用星级隧道连接起来。
考试思路:最小生成树,然后仔细一算邻接表要MLE,然后选择了会RE的邻接矩阵。
然后prime跑了一边
正解:按坐标排序建图,克鲁斯卡尔跑一边。。。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值