首页 > Topforces Strikes Back
头像 issue是云哥的小迷×呀
发表于 2020-12-27 10:54:24
非常巧妙的题(然而有什么用嘛!!!!我又不会) 如果只选一个数,一定选最大的数 Ⅱ 如果选两个数和,一定选掉最大的那个数 证明如下 ① 若只有一个数是的约数,那么拿去替换他 ② 若两个数都不是的约数,替换任何一个数都会时答案更优 ③ 若两个数都是的约数,那么最大就是 综上所诉,选择最大的才是最优的 展开全文
头像 MYCui_
发表于 2020-12-25 07:20:51
前言 这道题目是一道非常巧妙的贪心。 难度:4星 简略题意: 给定一个长度为 的序列,在序列中取至多三个数,使得这取的数互不为倍数关系。 , 具体做法: 因为是最多取 3 个数,不妨按取的数的个数进行分类讨论。 : 取一个数 这样的话当然是取最大的那个数最优,Pass。 :取两个数 通过 展开全文
头像 熠丶
发表于 2020-12-25 12:11:45
做法 1.因为使得答案最大,一定是优先选大数,所以先排序因为数之间没有倍数关系,一定不能选重复的数字,所以可以去重 2.分类讨论:1)如果能选一个数,一定是最大的那个数2)如果能选两个数,一定是最大的那个数+与它不成倍数关系中最大的数证明:因为 如果不选最大的那个数一定会比第一种情况小3)如果能 展开全文
头像 BNDSBilly
发表于 2020-12-28 09:07:16
枚举第一个数为x去除x的所有倍数找到最大的数z去除z的所有约数找到最大的y答案为max(x+y+z) 代码如下: #include<bits/stdc++.h> #define ll long long #define pa pair<int,int> using names 展开全文

等你来战

查看全部