博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SRM 594 DIV 2 - 2
阅读量:4958 次
发布时间:2019-06-12

本文共 1460 字,大约阅读时间需要 4 分钟。

枚举题,由于 \(A\) 和 \(B\) 是原数的比例,将原题重新叙述为:

已知集合 \(A\) 和 \(B\),\(k_1A\) 和 \(k_2B\) 是 \(A\)、\(B\) 分别乘以 \(k_1\)、\(k_2\) 的数组。找到一组 \((k_1, k_2)\) 使得 \(k_1A\) 和 \(k_2B\) 中不相同的数尽可能少,找到这个最小的数

\(k_1, k_2\) 无上限,不可能枚举所有的 \(k_1, k_2\)

最优情况下必然存在数 \((a, b) \in (A, B)\) 使得 \(k_1a=k_2b\),或者不存在则最优解直接为 \(len(A)+len(B)\)。

可令 \((k_1, k_2)=(b, a)\),这是一组符合条件可能导出最优解的组合,因此算法如下:

枚举所有的 \((a, b) \in (A, B)\),计算 \({bA+aB}\) 中不同数的个数,取最小值。

现在的问题是,这样的枚举算法是否囊括了所有情况,或者至少囊括所有最优解的情况?

只需证明:

\((k_1, k_2)=(pb, pa) (pb,pa \in N^*)求得的结果相同 \) 

于是,\(k_1a=k_2b\) 情况下只需取任意一组合法的 \((k_1, k_2)\) 求解即可

1 from fractions import gcd 2  3 class AstronomicalRecordsEasy: 4     def minimalPlanets(self, a, b): 5         result = len(a) + len(b) 6         for x in a: 7             for y in b: 8                 aa = [t*y for t in a] 9                 bb = [t*x for t in b]10                 s = set(aa + bb)11                 result = min(result, len(s))12         return result13 14 15 # test16 o = AstronomicalRecordsEasy()17 18 # test case19 assert(o.minimalPlanets((1,2,3,4), (2,3,4,5)) == 5)20 assert(o.minimalPlanets((1,2,3,4), (2,4,6,8)) == 4)21 assert(o.minimalPlanets((1,2,3,5,6,8,9), (2,4,5,6,7,8,9)) == 9)22 assert(o.minimalPlanets((1,2,3,4), (6,7,8,9)) == 6)23 assert(o.minimalPlanets((200,500), (100,200,300,400,600,700,800,900)) == 9)24 assert(o.minimalPlanets((1,2,3,4,5,6,7,8,9,10,11,12), (6,7,8,9,10,11,12,13,14,15)) == 15)25 print('ok')
View Code

 

转载于:https://www.cnblogs.com/valaxy/p/3440763.html

你可能感兴趣的文章
機械の総合病院 [MISSION LEVEL: C]
查看>>
实战练习细节(分行/拼接字符串/字符串转int/weak和copy)
查看>>
Strict Standards: Only variables should be passed by reference
查看>>
hiho_offer收割18_题解报告_差第四题
查看>>
AngularJs表单验证
查看>>
静态方法是否属于线程安全
查看>>
02号团队-团队任务3:每日立会(2018-12-05)
查看>>
SQLite移植手记1
查看>>
C# windows程序应用与JavaScript 程序交互实现例子
查看>>
HashMap详解
查看>>
js05-DOM对象二
查看>>
mariadb BINLOG_FORMAT = STATEMENT 异常
查看>>
C3P0 WARN: Establishing SSL connection without server's identity verification is not recommended
查看>>
iPhone在日本最牛,在中国输得最慘
查看>>
动态方法决议 和 消息转发
查看>>
WPF自定义搜索框代码分享
查看>>
js 基础拓展
查看>>
C#生成随机数
查看>>
iOS CoreData介绍和使用(以及一些注意事项)
查看>>
Android应用程序与SurfaceFlinger服务的连接过程分析
查看>>