首页 > 其他分享 >ABC323D题解

ABC323D题解

时间:2023-10-22 17:45:58浏览次数:28  
标签:剩余 橡皮泥 题解 合成 ABC323D 大小

ABC323D Merge Slimes

题目简述

小 A 有 \(N\) 种橡皮泥。对于第 \(i\) 种橡皮泥,它的大小为 \(S_i\) 且一共有 \(C_i\) 个。

小 A 可以合成两个大小相同的橡皮泥,若这两个橡皮泥大小为 \(X\),则新和成的橡皮泥大小为 \(2X\)。

小 A 想知道,在进行若干次合成后(有可能 \(0\) 次),他能获得的最小的橡皮泥的种类数是多少。

思路

要尽量多地进行合成操作,很容易想到从小到大地合成橡皮泥。

每次要合成当前大小最小的橡皮泥,合成之后要么剩余 \(0\) 个,要么剩余 \(1\) 个。如果剩余 \(1\) 个,则之后无论怎样合成都不能消除掉,故对答案产生 \(1\) 的贡献。

可以用优先队列维护数量大于 \(1\) 的橡皮泥,每次取出队列中大小最小的橡皮泥进行更新。

Code

标签:剩余,橡皮泥,题解,合成,ABC323D,大小
From: https://www.cnblogs.com/wangchai2009/p/17780741.html

相关文章

  • P9754 [CSP-S 2023] 结构体 题解
    前言在考场上调了2h+还没调出来,并且T4也没来得及做。希望看到这段文字的你能避免这样的悲剧。正文题目要求动态创建类型,于是我用结构体代表一个struct(禁止套娃),要新建就new出来一个。(最后也没delete)structObj{typnamtnam;lllen,align;std::map<std:......
  • CSP-S 2023 题解
    expect:\(100+100+65+25=290\)真实:\(100+85+0+15=205\),rk62感觉自己考的好烂好烂好烂T4这么简单竟然想不出来,感觉如果自己不被T4吓到,全做出来其实有望365+?今年CSP-S怎么这么简单吓得我不敢做了T1暴力T2考场做法:设\(lst_i\)表示\(a_i=a_{lst_i}\)并且\((......
  • pip安装慢问题解决
     一、永久修改pip软件安装默认源使用pipconfigsetglobal.index-url来直接指定下载源的URL,这样就不用手动修改配置文件了pipconfigsetglobal.index-urlhttps://pypi.tuna.tsinghua.edu.cn/simple以下是国内互联网常用的pypi安装源URL,在国内互联网下载的速度非常快......
  • CSP-S2023 题解
    更好的阅读体验CSP-S2023游记密码锁(lock)\(10^5\)枚举所有可能答案,然后判断。代码#include<bits/stdc++.h>intn;inta[13][7],b[7];boolcheck(inti){ intcnt=0; for(intj=1;j<=5;j++)cnt+=(a[i][j]!=b[j]); if(cnt==1)returntrue; else......
  • 【HAL 库复盘】自己手动创建工程模版Undefined symbol HAL_NVIC_SetPriority 问题解决
    1问题说明学习自己手动搭建一个STM32HAL库工程模板文件的时候,我发现了有6个错误,6个错误的类型是一样的,其中有3个通过添加hal_rcc.h和hal_gpio.c文件得以解决。所以另外3个我也想到了时缺少了对应的.c文件导致的错误。但是在STM32F1xx_HAL_Driver文件夹中,我没有找到类似如有“rcc......
  • P9752 [CSP-S 2023] 密码锁 题解
    分析最水S组T1。每次可以转动一个拨圈,或者转动相邻的两个拨圈,且幅度相同。那么就有一个简单粗暴的思路,枚举修改的方案,用vector来储存修改后的方案,存到map当中,当然也可以转换为数字存进去。切记要用两个map来储存,一个存方案,下文称为\(mp\),一个存这个方案在这个状态下......
  • springboot使用form标签在两个html页面之间实现界面跳转,出现405问题,但是一刷新就能出
    问题描述在我使用form标签的action属性实现两个html页面之间的跳转,但是出现了这样的问题:问题解决我尝试将这一块内容去掉:然后再次尝试:页面出来啦~问题解决啦~~......
  • CSP-J2023 题解
    T1code#include<bits/stdc++.h>usingnamespacestd;intn,ans;signedmain(){ ios::sync_with_stdio(0);cin.tie(0); cin>>n; for(inti=n;i;i-=(i+2)/3)++ans; cout<<ans<<""; for(inti=n,j=1;i;i-=(i+2......
  • 传奇游戏常见问题解决办法
    GEE合区出现错误常规解决方案GEE合区出现错误大部分因数据库损坏导致的合区报错,如果合区提示内存不足,更新64位合区,使用64位合区工具在服务器上进行合并,合区需要将2个区数据大部分提取到内存中,32位合区工具支持内存有限,使用64位合区工具在64位大内存系统上运行,定期清理一些垃圾数据,......
  • 网络规划设计师真题解析--内存编址
    内存按字节编址,利用8K×4bit的存储器芯片构成84000H到8FFFFH的内存,共需()片。A.6      B.8      C.12      D.24答案:C解析:8FFFFH-84000H+1=C000HC000H转换成十进制:C*163+0*162+0*161+0*160=12*163=12*16*16*16=12*4*4*256=48*1024=48KC000H*8bit=48K*8bit(48......