[翻译]ACMer 2013 Daily Training- 14th Mar for 11x&&12x

[A] Minimum Sum LCM

大家都知道最小公倍数(LCM)的定义吧,有趣的是任何正整数都可以被表示成某些数的LCM。例如: 12 可以是(1,12)或(12,12)或(3,4)或(4,6)或(1,2,3,4)的LCM。

在这个问题中,给你一个正整数N ,请你找出至少2个数的集合,而这些数的LCM为N 。由于会有无限多这样的集合,请你选出总和最小的,而且你也只需要输出这个和就好了。例如:N=12,(3,4)是所有LCM为12的可能集合中总和最小的,因此你应该输出3 + 4 = 7 。

Input

输入含有多组测试资料,但最多只有100组。

每组测试资料一列,有一个整数N(1 <= N <= 2 31 -1)。

当N = 0时代表输入结束

Output

对每组测试资料请输出这是第几组测试资料,然后输出LCM 为N 的可能集合中总和最小为多少。输出格式请参考Sample Output。

Sample InputSample Output
12
10
5
0
Case 1: 7
Case 2: 7
Case 3: 6

[B] Street Numbers

有一个程式设计师住在一条街上,这条街上的房子都在路的同一边且门牌号码从1连续下来。有一天晚上他牵着他的狗出门散步,出门之后往左边走,因为溜狗有点无聊,所以他顺便把经过的房子的门牌号码加起来。隔天晚上他又出门溜狗,但这一次他往右走并且也把经过的门牌号码加起来。让他很惊讶的是:这两次的数字竟然一样。

当然,这个巧合现象跟这条街共有几间房子(n),以及他住在第几间房子(k)有关系。请写一个程式找出前10 个满足这样条件的数对(k,n)。在Sample Output中有前2个这样的数对。

Input

No input

Output

每一对数字k,n长度均为10,向右靠齐。请参考Sample Output

Sample Output

         6 8
        35 49
       ... ...
      .... ....
 

[C] Pizza Cutting

Pizza大家都吃过吧!我个人是偏爱达美乐Pizza啦!现在问题来了:给你一块Pizza,如果切一刀可以切成2块,切2刀最多可切成4块,切3刀最多可切成7块(如下图),那切N刀最多可以切成几块呢?

Input

输入的每一笔测试资料有1个整数N(0 <= N <= 210000000)代表切几刀。
如果N为负数,代表输入结束。

Output

对每一输入N,输出切N刀最多可以切成几块Pizza。

Sample input

5
10
-100

Sample Output

16
56

[D] Fibinary Numbers

标准的2进位数1010若算成10进位的话是8+2=10。你有没有想过如果我们用费伯那西数(Fibonacci numbers)来取代2的指数,情况会是如何呢?在此问题中,费伯那西数列:1,2,3,5,8,13,21,34,......你可以发现数列中的每一项都是前2项的和(当然,第1项=1和第2项=2是基本的定义)。以上面的例子1010来说的话,若以费伯那西数为基底的话,就可以得到1*5+0*3+1*2+0*1=7。我们称这样的表达方式为Fibinary Number。

我们也发现了,有的数可以以不只一种Fibinary Number来表示。例如:10进位的10可以以8+2(10010)或5+3+2(1110)这2种Fibinary Number来表示。为了要使某数以唯一的Fibinary Number来表示,我们规定尽可能的使用较大的费伯那西数(也就是说,不允许有相连的1存在)。以上面的例子10来说,应该以8+2(10010)来表示。

Input

每组测试资料2列。各有1个合法的Fibinary Number。长度最大为100个字元。

测试资料间空一列。

Output

对每一组测试资料,请输出该2个Fibinary Number相加的结果(以Fibinary Number的形式)。测试资料间亦请空一列。

Sample Input

10010
1

10000
1000

10000
10000

Sample Output

10100

100000

100100

[E] Arbitrage

所谓的「三角套汇(arbitrage)」就是在几种外币中做金钱的交易,期待从汇差中获取少许的利润。例如:1 元美金可以买0.7 英镑,1 元英镑可以买9.5 法朗,1 元法朗可以买0.16 美金。所以如果我们把1 元美金换成英镑,再把英镑换成法朗,最后再把法朗换回美金,那么最后得到的美金将是:1*0.7*9.5*0.16=1.064 美元。也就是说我们可以从中获取汇差0.064 美元,相当于赚了6.4% 。

请你写一个程式找出是否有这样套汇的情况,可以获取如上所述的利益。

要产生一个成功的套汇,在换外币的过程中,开始的币种一定得等于最后的币种。但是从哪一种开始都可以。

Input

输入含有多组测试资料。

每组测试资料的第一列,有一个整数n(2 <= n <= 20),代表共有多少种币种。

接下来的n 列代表这n种外币之间的汇率转换表。每列有n-1 个数。这n-1 个数分别代表该币种1元可以换取其他币种多少元(自己换自己当然是1,所以不会出现)。所以第1列的n-1 个数依序分别代表第1种外币1元可以换取,第2种外币,第3种外币,第4种外币...第n种外币各多少元。而第2列的n-1 个数依序分别代表第2种外币1元可以换取,第1种外币,第3种外币,第4种外币...第n种外币各多少元。依此类推,第n列的n-1 个数依序分别代表第n种外币1元可以换取,第1种外币,第2种外币,第3种外币...第n-1种外币各多少元。

请参考Sample Input。

Output

对每组测试资料输出一列,代表一连串币种转换的动作,并且套汇获利需大于1%( > 0.01)。如果有不止一种转换可以获取超过1%的利益,请输出转换次数最少的。如果转换次数最少的不止一种,那么任何一种都可以。请注意:在这里只要求转换次数最少,并没有要求获利要最大,只要能大于1% 就可以了。

另外,国税局还规定最多只能转换n 次(n 是币种的数目)。像1, 2, 1 这样的转换次数为2。

如果在n 次的转换内都无法获利超过1%,请输出no arbitrage sequence exists。

Sample InputSample Output
3
1.2 .89
.88 5.1
1.1 0.15
4
3.1 0.0023 0.35
0.21 0.00353 8.13 
200 180.559 10.339
2.11 0.089 0.06111
2
2.0
0.45
1 2 1
1 2 4 1
no arbitrage sequence exists









[F] Simple Minded Hashing

我想你们多少知道关于「杂凑(hashing)」。它使用某些数学函数把一字串对应到数值上。在这个问题中,我们将考虑一种相当简单的杂凑方法:针对字串中的每个字元,我们给予它一个数值,然后算出其总和。

例如:字串"acm" 被对应到1 + 3 + 13 = 17。不幸的是,这个方法并不会给你一对一的对应。字串"adl" 也对应到17(1 + 4 + 12)。这种情形被称为碰撞(collision)。

在这个问题中你要使用上述的杂凑函数找出长度L,对应到S 的字串共有多少种。你所必须考虑的字串内容均为小写字母,且呈严格递增(strictly ascending)。

例如:若L=3, S=10 那么有4 个这样的字串。

  1. abg
  2. acf
  3. ade
  4. bce

agb 也对应到10,但是并不符合严格递增的规定。bh 也对应到10 ,但是其长度仅为2 。

Input

输入含有多组测试资料。每组测试资料一列,有2 个正整数L 和S(0 < L, S < 10000)。当L=S=0 时代表输入结束。

Output

对每一组测试资料输出一列,输出这是第几组测试资料以及符合的字串数目(一定可以用32 bit signed integer 表达),输出格式请参考Sample Output。

Sample InputSample Output
3 10
2 3
30 400
10 500
0 0
Case 1: 4
Case 2: 1
Case 3: 0
Case 4: 0

[G] Parentheses Balance

在本题中,题目会先给你一个包含小括号()及中括号〔〕的字串。当字串符合下列条件时我们称他为正确的运算式:

  1. 该字串为一个空字串
  2. 如果A和B都为正确的运算式,则AB也为正确的运算式,
  3. 如果A为正确的运算式,则(A)及〔A〕都为正确的运算式。

现在,请你写一支程式可以读入这类字串并检查它们是否为正确的运算式。字串的最大长度为128个字元。

Input

输入的第一列为正整数n,代表接下来有n列待测资料。

Output

检查每列待测资料,如果正确输出Yes,否则输出No。

Sample Input

3
([])
(([()])))
([()[]()])()

Sample Output

Yes
No
Yes

[H] Inscribed Circles and Isosceles Triangles

给你2个实数

  • B      等腰三角形的底长
  • H      等腰三角形的高
你的任务是计算以下的值到小数点后6位。
  • C      一连串的等腰三角形的内接圆圆周长的和。其中第一个内接圆与底及两腰切,第二个内接圆与第一个内接圆及两腰切,依此类推。为了要限制计算的范围,半径小于0.000001的内接圆均不再列入计算。

对于那些三角几何有点生疏的人:三角形的内接圆为三个角的角平分线的交点,此点到三个边的垂直距离均相同(也就是内接圆的半径)。

Input

输入的第一列有一个正整数代表以下有几组测试资料。每组测试资料一列,含有2个实数(BH)。请参考Sample Input。

Output

每组测试资料输出一列C的值(到小数点后6位),请注意:小数点的位置一定在第7行。测试资料间请空一列,请参考Sample Output。

Sample Input

2

0.263451 0.263451

0.987 0.54125

Sample Output

     0.827648

     1.700383


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
摘 要 伴随着人才教学的关注度越来越高,对于人才的培养也是当今社会发展的最为重要的问题之一。为了进一步的进行人才的培养关工作,许多的学校或者是教育的机构逐步的开展了网络信息化的教学和和管理工作,通过信息化的手段和技术实现网络信息化的教育及管理模式,通过网络信息化的手段实现在线答题在线考试和学生信息在线的管理等操作。这样更加的快捷解决了人才培养之的问题,也在进一步的促进了网络信息化教学方式的快速的发展工作。相较于之前的人才教育和培养工作之,存在这许多的问题和局限性。在学生信息管理方面通过线下管理的形式进行学生信息的管理工作,在此过程之存在着一定的局限性和低效性,往往一些突发的问题导致其工作出现错误。导致相关的教育工作受到了一定的阻碍。在学生信息和学生成绩的管理方面,往常的教育模式之下都是采用的是人工线下的进行管理和整理工作,在这一过程之存在这一定的不安全和低效性,面对与学生基数的越来越大,学生的信息管理也在面领着巨大的挑战,管理人员面领着巨大的学生信息的信息量,运用之前的信息管理方式往往会在统计和登记上出现错误的情况的产生,为后续的管理工作造成了一定的困难。然而通过信息化的管理方式进行对学生信息的管理不仅可以避免这些错误情况的产生还可以进一步的简化学生信息管理工作的流程,节约了大量的人力和物力的之处。在线答题系统的实现不仅给学生的信息管理工作和在线考试带来了方便也进一步的促进了教育事业信息化的发展,从而实现高效化的教学工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值