Bob有一家初创公司正在开发一种使用“高级人工智能”和“黑魔法”自动编码高尔夫计算机程序的产品。不幸的是,鲍勃的现金用完了,他迫切需要投资者的资金来维持他的公司的运营。Bob联系过的每一位投资者都希望在一定的开始和结束时间内安排一次会议。然而,有些会议时间彼此冲突。鲍勃希望与尽可能多的投资者见面,这样他就能筹集到最多的资金。考虑到Bob一次只能见一个投资者,那么Bob能见多少个投资者?
输入是一组对(或在您所选择的语言中等效的)。每对p代表一个投资者,其中p[0]是投资者会议的开始时间,p[1]是结束时间。
例如,在测试用例[(0,10),(5,10),(12,13)]中,有三个投资者:一个希望从时间0到时间10见面,一个想从第5到第10时间见面,还有一个希望在12到13时间见面的投资者。会议总是有一个积极的持续时间,而在时间结束时结束的会议与从time k开始的会议没有冲突。
您可以使用任何合理的I/O方法进行输入。
[(0,10),(5,10),(12,13)] => 2 (investors 1 and 3)
[(10,20),(10,20),(20,30),(15,25)] => 2 (investors 1 and 3)
[(0,3),(1,5),(1,5),(1,5),(4,9),(6,12),(10,15),(13,18),(13,18),(13,18),(17,19)] => 4 (investors 1,5,7 and 11)
[(1,1000),(1,2),(2,3),(3,4),(4,5),(5,6),(6,7)] => 6 (every investor except the first)
[(1,2),(101,132),(102,165),(3,9),(10,20),(21,23),(84,87)] => 6 (investors 1,2,4,5,6,7)您的程序应该输出一个整数,即Bob可以会见的最大投资者数量。
标准漏洞是禁止的。这是密码-高尔夫,所以每种语言中最短的解决方案都是赢家。
发布于 2021-04-27 05:45:42
If[#==0m,1,1+#0[#.m]]&[m=Boole[#>=#2&~Outer~##]]&输入[{starting times}, {ending times}]。
找出功率最小的n,使得M^n=\mathbf{0},其中M是一个邻接矩阵,表示可能的下一次会议。
发布于 2021-04-27 05:47:05
发布于 2021-04-27 11:24:56
<þ¬æ×Ƭ`L<þ¬æ×Ƭ`L
<þ outer product less than
¬ negate (outer product greater than or equal to)
æ× matrix multiply
Ƭ` apply until converged using itself as the left argument
L length用数学答案的方法https://codegolf.stackexchange.com/a/224523/95516去投票吧!
https://codegolf.stackexchange.com/questions/224515
复制相似问题