首页 > 其他分享 >【做题笔记】洛谷P5584 【SWTR-01】Sunny's Crystals

【做题笔记】洛谷P5584 【SWTR-01】Sunny's Crystals

时间:2022-10-10 07:44:05浏览次数:82  
标签:01 洛谷 log SWTR Sunny P5584 Crystals 指针

Problem

P5584 【SWTR-01】Sunny's Crystals

题目大意:

给你一个长度为 \(n\) 的序列,每次可以删掉下标为 \(2\) 的非负整数次幂的数,删掉一个数后他后面的数会往前补,问删掉所有值为 \(w\) 的数所需要的最小步数及对应的方案。

Solution

考虑贪心做法。

如果当前能删的数中有 \(w\),显然删 \(w\) 最优。但当有多个值为 \(w\) 的位置时应该如何选择?容易发现删最后一个更优,因为删前面的数会影响后面的数,所以要尽量不影响后面。
如果当前能删的数中没有 \(w\),那么与之前相反,要让尽可能多的位置改变,所以删第一个数。

但是直接做是 \(n^2\) 的,所以考虑优化。
这里给出一个不需要数据结构的做法。
考虑到能删的位置只有 \(\log n\) 个,所以可以维护 \(\log n\) 个指针,分别指向能删的位置。每次删一个数就把当前及之后的指针右移一位。并且在删过的数上打上 tag。每次删数都只会影响 \(\log n\) 个指针,且每个数最多被 \(\log n\) 个指针扫到,复杂度为 \(O(n \log n)\)。

Code

实现起来很简单,码就不贴了。

标签:01,洛谷,log,SWTR,Sunny,P5584,Crystals,指针
From: https://www.cnblogs.com/mk-oi/p/LuoguP5584.html

相关文章

  • 016.五种通知类型
           ......
  • ERP项目笔记-Day01
    技术选型: 采用前后端开发,不再像以前那样跳来跳去了。更加注重用户体验。 数据库的创建和准备:关于数据库是很大的一块内容,需要根据实际需求去设计表。如果是在公司,会有人设......
  • 海乐淘商城系统--01前缀(功能介绍以及关于架构)
    系统功能图我要完成的部分系统功能管理后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。前台系统:用户可以在前台系统中进行注册、登录、浏览......
  • 洛谷 P6146
    由于博主是只鸽子,所以咕咕咕。()不,应该是目录不在更新,请关注博客首页。有空我把目录更新一下,好久不更了传送门YouareMiserable(ATLv.15)思路Stage1这题其实是个......
  • 20201322陈俊池学习笔记6
    20201322陈俊池学习笔记63.1多任务处理多任务处理指的是同时执行几个独立的任务。在单处理器(单CPU)系统中,一次只能执行一个任务。多任务处理是通过在不同任务之间......
  • school01
    命令提示符基本指令//切换到需要的路径cd+空格+路径名//切换到e盘e://显示文件dir java在命令提示符运行//编译javac+空格+需要编译的java文件+后缀名//运行j......
  • Java基础001:数据类型及扩展
    Java的数据类型分为两大类基本类型(primitivetype)数值类型整数类型byte占1个字节范围:-128-127short占2个字节范围:-32768-32767int占4个字节范围:-2147483648-......
  • rest_framework01:前后端分离\规范\简单例子(查询某本书)
     web开发模式RESTful规范1数据的安全保障url链接一般都采用https协议进行传输注:采用https协议,可以提高数据交互过程中的安全性2接口特征表现用api关键字......
  • 代码最佳实现——01-静态工厂方法
    这一系列的文章,将持续的开始。我是通过阅读《Effective java》,加上网上的博客的学习,进行总结。是这样的《Effective java》这本书中没有代码例子。 以下内容是复制粘贴来......
  • 华为MA5671A,诺基亚G010-SA 猫棒 ttl刷机 求砖 忘记ip
    工具usb转串口模块sfp底坐usb转串口软件连接MA5671ASFP座子的2(TX)、7(RX)、10(GND)和15或16(VCC)G010-SASFP座子的3(RX)、6(TX)、10(GND)和15或16(VCC)串口速......