当前位置: 首页 > news >正文

洛谷U389682 最大公约数合并

这道题最后有一个性质没有想出来,感觉还是有一点遗憾。

性质一、贪心是不对的

8 11 11 16

虽然第一次选择8和16合并是最优的,但是如果合并两次的话8 11 11是最优的。

性质二 、有1的情况就是前k+1个,也就是说,很多情况下取前k+1都是最优的

性质三 如果某个数前面有它的因子,那么合并的时候可以不对 a 1 a_1 a1产生任何影响。同时,如果 b m o d a = 0 , b > a b \mod a=0,b>a bmoda=0,b>a那么 b b b一定比 a a a后合并,也就是说无影响合并只会发生在相同的数之间,因此我们把无影响的数提出来考虑,所以剩下的都是不同的。

性质四 如果所有的数都不同,那么全部都只会和 a 1 a_1 a1合并。在原来的数列中考虑合并形成的连通块。在连通块大小为2的情况时。设 a 1 < x < y a1<x<y a1<x<y,那么有 y − x > = g c d ( x , y ) y-x>=gcd(x,y) yx>=gcd(x,y)所以, x + y − g c d ( x , y ) > = 2 x > a 1 + x x+y-gcd(x,y)>=2x>a_1+x x+ygcd(x,y)>=2x>a1+x,不如直接合并 a 1 a_1 a1 x x x。现在考虑连通块大小超过2的情况。假设某个连通块不包含 1 1 1,那么我们可以通过合并使得该联通块剩下两个数,其中有一个还没有与任何的数合并。Case 1: x < a 1 < y x<a_1<y x<a1<y,这时应该合并 x , a 1 x,a_1 x,a1最优,与原假设矛盾。Case 2: a 1 < = x < = y a_1<=x<=y a1<=x<=y,这时也是合并 a 1 , x a_1,x a1,x更优,所以假设错误。

所以,现在应该把前面有相同的和剩下的全部不同的数分成两个组,然后给这两组分配合并次数,难点就是要怎么求在给定的次数时全部不同组的选择方法,但是我没有坚定的往这个方面想。

性质五 假设给全部不同的数合并 k k k次,那么必然选择 1 , 2 , . . . , k − 1 1,2,...,k-1 1,2,...,k1,只有第 k k k个是不确定的。考虑选择 a , b , c , d ( a < b < c < d ) a,b,c,d(a<b<c<d) a,b,c,d(a<b<c<d)的情况,那么合并如果是 a , c , d a,c,d a,c,d的话,那么 c o s t ( a , c , d ) − c o s t ( a , b , c ) = d − b + g c d ( a , c , d ) − g c d ( a , b , c ) > = g c d ( b , c ) + g c d ( c , d ) + g c d ( a , c , d ) − g c d ( a , b , c ) > 0 cost(a,c,d)-cost(a,b,c)=d-b+gcd(a,c,d)-gcd(a,b,c)>=gcd(b,c)+gcd(c,d)+gcd(a,c,d)-gcd(a,b,c)>0 cost(a,c,d)cost(a,b,c)=db+gcd(a,c,d)gcd(a,b,c)>=gcd(b,c)+gcd(c,d)+gcd(a,c,d)gcd(a,b,c)>0,所以只用考虑第k个点怎么选,而且枚举范围有 a [ i ] − a [ k − 1 ] < g c d ( a 1 , a 2 , . . . , a k − 1 ) a[i]-a[k-1]<gcd(a_1,a_2,...,a_{k-1}) a[i]a[k1]<gcd(a1,a2,...,ak1),这样显然是不超过 O ( n l o g n ) O(nlogn) O(nlogn)的。

http://www.lryc.cn/news/385125.html

相关文章:

  • video_多个m3u文件合并成一个m3u文件
  • x264 码率控制 MBtree 原理:i_propagate_cost计算过程
  • C语言基础笔记(全)
  • 通过注释语句,简化实体类的定义(省略get/set/toString的方法)
  • springboot框架使用Netty依赖中解码器的作用及实现详解
  • Python爬虫实战之爬取京东商品数据
  • 浅析Resource Quota中limits计算机制
  • 《数据结构与算法基础 by王卓老师》学习笔记——1.4算法与算法分析
  • 运维团队如何加强安全设备监控与日志管理
  • 仓库管理系统13--物资设置
  • 机器人控制系列教程之URDF文件语法介绍
  • Arathi Basin (AB) PVP15
  • Ubuntu/Linux SSH 端口转发
  • flask的locked_cached_property
  • OSI七层模型TCP/IP四层面试高频考点
  • Swagger2及常用校验注释说明
  • 【项目实训】各种反爬策略及爬虫困难点总结
  • 能量智慧流转:全面升级储能电站的智能网关解决方案
  • 【金融研究】6月,对冲基金狂卖美国科技股 短期乐观,长期悲观?“油价最大空头”花旗:明年跌到60
  • GroundingDINO1.5突破开放式物体检测界限:介绍与应用
  • centos编译内核ko模块
  • Android13 WMS窗口层级树
  • 计算机毕业设计Python+LSTM+Tensorflow股票分析预测 基金分析预测 股票爬虫 大数据毕业设计 深度学习 机器学习 数据可视化 人工智能
  • 仓库管理系统14--仓库设置
  • Python 算法交易实验73 QTV200第二步: 数据清洗并写入ClickHouse
  • 记录:有趣的C#多元运算符 ? : 表达式写法
  • 华宽通中标长沙市政务共性能力建设项目,助力智慧政务建设新飞跃
  • [面试题]计算机网络
  • 企业级低代码开发效率变革赋能业务增长
  • 2024最新总结:1500页金三银四面试宝典 记录35轮大厂面试(都是面试重点)