第 45 届ICPC亚洲区域赛(济南)C Stone Game【题解】
创始人
2024-03-20 11:23:31
0

牛客竞赛传送门:

本题链接:Stone Game

题目大意

有333个数据a1、a2、a3,其中ai表示数量为i的石头的堆数,假如a1=999999,那么数量为111的石头有999999堆。现在要把那么多堆石头合并成111堆,每次只能两两合并且会付出代价,求最小代价。代价的计算方法:假如这两堆的数量分别是x和y,那么合并的费用为(xmod3)∗(ymod3)(x mod 3) * (y mod 3)(xmod3)∗(ymod3)

样例

输入
99 66 55
输出
165

算法及思路

贪心。
思路:观察可得,合并一入1和不2消耗体力为2。合并1消耗体力为1的个数乘1,合并2消耗体方为2的个数乘2。3是不用管的。最优方案肯定是合并完1和2再合并剩余的1或2。那么分类讨论就行了

证明思路

引理:由于333mod333=000,那么需要尽量凑出足够多的333,在111和222的数量都大于000的时候,先合并111和222可以凑出更多333,此时是a1 a2 0(a1 > a2)。 即证明:在111和222的数量都大于000时,先合并111和222可以在更小的体力下产出更多的333。
反证:若不先合并111和222,即合并111和111或222和222,不失一般性,下面讨论111和111。由于先合并111和111会产生体力消耗为a1/2a1/2a1/2,堆变为000、 (a2+a1)/2(a2+a1)/2(a2+a1)/2、 000,此时便只能合并222和222,不难看出,合并完222后体力消耗2∗a2+a12*a2+a12∗a2+a1,此时共消耗的体力已经达到2∗a2+1.5∗a12*a2+1.5*a12∗a2+1.5∗a1。由下面推导可得按最优解合并完后消耗的体力为a1+a2a1+a2a1+a2,显然更优。

下面的111 222 333表示数量为几个(包括333的整数倍➕余数,即444 777算进111,555 888算进222,666 999算进3,以此类推),设堆数为a1 a2 a3
①若先合并111和333或222和333都只会消耗333(因为(111+333)mod333=111,即111和222的堆数并不改变),下面讨论合并111和333。(222和333同理)
消耗完333后,体力消耗000,堆数为a1 a2 0,此时只能合并111和222,不失一般性,设a1>a2,那么一对一合并完后,堆数为a1 - a2,体力消耗222 * a2,此时的决策是当前最优。引理:由于333mod333=000,那么需要尽量凑出足够多的333,在111和222的数量都大于000的时候,先合并111和222可以凑出更多333。合并后的样子是a1 - a2 0 0,这里有多种合并方式,我取两种极端的例子,其余例子所消耗的体力必然在这两者消耗体力所构成的闭区间内,下面会给出该证明。
(1)单方面整块合并111或222(xxx = a1 - a2),合并后消耗体力为x/2x/2x/2,堆数写得繁琐便不再赘述,此时222中有x/2x/2x/2堆,继续单方面合并,消耗x/4∗2x / 4 * 2x/4∗2体力,以此类推,最后所得消耗体力是x+x/4+...+x/(4n−1)x+x/4+...+x/(4^{n-1})x+x/4+...+x/(4n−1) 此时x大于等于4的n-1次方,自行解n。
(2)利用222 000 000消耗体力222,333 000 000消耗体力333,000 222 000消耗体力444,000 333 000消耗体力666这种合并配凑的方式进行合并,那么a1 - a2 000 000合并后所消耗的体力值应为a1 - a2,即消耗体力xxx。显然第二个更优。

②若先合并111和222,即a1 a2 a3变为a1 - a2 000 a3,消耗体力2∗a22*a22∗a2,与以上一致,因此一开始先合并谁都不影响最优解,因为只要3存在,且合并时包含333消耗体力都为000且只消耗333。

不严谨证明:为何“其余例子所消耗的体力必然在这两者消耗体力所构成的闭区间内”?
由于第一种合并方式消耗的体力值要么为111要么为444,而第二种消耗的体力值为111或222,在合并相同性质数量的区间的条件下,合并方式便是影响消耗体力的最大因素。若采取其余合并方式有111 222 444的可能性,有222的加入,显然比第一种优,有444的加入必然比第二种劣

代码

#include 
#include 
#include 
#define reg register
#define int long long
using namespace std;
const int N=1e5+5;
int n,m;
int a,b,c;
signed main() 
{ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>a>>b>>c;int ans=0;if(a==b){ans=a*2;}else if(a>b){int d=a-b;if(d%3==2) ans++;ans+=b*2+(d-d%3);}else{int d=b-a;if(d%3==2) ans+=4;ans+=a*2+(d-d%3)*2;}cout<

以上皆为个人观点,如有不严谨的地方请指出。

相关内容

热门资讯

孙根成和王天一谁更厉害? 孙根成和王天一谁更厉害?已知长方形的表面积=2乘(长×宽+长×高+宽×高)
拉开序幕的同义表达 拉开序幕的同义表达拉开序幕的同义词应该是展开帷幕。 展开帷幕,读音zhǎn kāi wéi mù ,...
幸福 电视剧剧情介绍 幸福 电视剧剧情介绍国产剧《幸福》讲述九十年代中期罗志刚一家发生的故事。韩剧《幸福》以新冠疫情结束的...
砸缸砸的家喻户晓的司马光,当时... 砸缸砸的家喻户晓的司马光,当时救的人是谁,很有名气吗?当时救的人是上官尚光。这个人懂得知恩图报,给司...
读了愿望的实现明白了什么道理?... 读了愿望的实现明白了什么道理?明白了要自己去努力 。加油哟~~~生活,还是要行动。
直线导轨的维护与清洁的重要性 直线导轨的维护与清洁的重要性导轨属于精密机械零件对清洁要求高。一般都带有防护罩。日常的维护主要是加油...
悦樘公寓安保如何?晚上半夜回去... 悦樘公寓安保如何?晚上半夜回去安不安全?住在悦樘公寓最不用担心的就是安保问题,全国所有的悦樘公寓都有...
校园励志微电影剧本怎么写 校园励志微电影剧本怎么写 校园励志剧本有很多类型的,你可以从体育类开始写或是关于考试的也可以。
无知者无畏 知而深深畏的意思 无知者无畏 知而深深畏的意思“无知者无畏,知而深深畏”是指那些不了解事物真相的人往往会无所畏惧,而看...
你名人轶事为主题的作文该如何写... 你名人轶事为主题的作文该如何写?名人轶事——作文素材①梁启超梁启超,字卓如,广东省新会人。他 11岁...
平凡人的生活状态是什么? 平凡人的生活状态是什么?生活就是理解,生活就是面对现实微笑。生活就是越过心灵的障碍,平静心性,淡泊名...
打算开个零食铺,名字要带水火木... 打算开个零食铺,名字要带水火木的,都有什么啊?店名要带水火木含义的,实在想不到了。请大家帮帮忙!开个...
深圳大學出了什麽名人? 深圳大學出了什麽名人?马化腾、史玉柱、周海江、张亚东、欧绮雯、陈文生、冼燃、黄子良、罗锦潮、方文权、...
家的方向才是心的方向是几个意思 家的方向才是心的方向是几个意思意思是,成就一个家需要心也就是感觉,这得问你自己的心这可能是一种表白,...
博字含义是什 博字含义是什 基本字义:博(拼音:bó)是汉语常用字,最早字形见于西周金文。本意是大;引申指丰富、宽...
梁嘉泓叶絮为什么分手 梁嘉泓叶絮为什么分手两人因为原生家庭的差距而分手。在很多所谓过来人的长辈眼中,十七岁的承诺就像小孩子...
求几本好看的修真玄幻小说,不要... 求几本好看的修真玄幻小说,不要开场主角无敌的那种!几年书龄,辰东,三少,土豆,我爱吃西红柿,耳根…求...
请问电影《查理和巧克力工厂》中... 请问电影《查理和巧克力工厂》中的巧克力是真那么多吗?如果是真的那得多么浪费啊!!这个问题我想了很久了...
排球的英语怎么读(有声) 排球的英语怎么读(有声)volleyball音标:英 [ˈvɒlibɔ:l] 美 [ˈvɑ:libɔ...
幼儿园最美教师演讲比赛怎么写稿... 幼儿园最美教师演讲比赛怎么写稿子   做最美的幼儿教师  各位领导,各位老师,大家好!  记得在很...