竞赛
考级
给全题解点个赞吧 (我个人认为这道题算这次欢乐赛中最难的题了。) 要用到数学中重要的分类讨论的思想。 首先将三个数排序,再寻找规律。不难看出与最大的数和另外两数之差有关系。 先通过操作二对较小的两数直至一数与最大数相同,再分类讨论。 如果现在最小的数与最大的数差为偶数,则步数直接加上差/2。(通过操作一) 为奇数加上差/2后会变为n-1,n,n,此时只需要再加2步即可。(一+二)
123****1124
T4 > 题目名称:ABC游戏 > > 时间限制:1000ms1000ms1000ms. > > 空间限制:128MiB128MiB128MiB 题意分析 这道题输入三个数a,b,c,求每次执行下列两个操作之一,最少几次能让三个数都相等。 操作1:选择两个数将两个数各加1 操作2:选择一个数加2 关键思路 这道题我们可以采用一种策略,要现将整体逼近于最大元素,再增加最小元素使它与其他元素相等,在先将3个数存在数组里,并排序,然后按题意模拟,求出第二大元素和第一大元素的差值,然后将第二大元素和第三大元素连续增加上前面计算好的差值,使用操作一,使第二大元素和最大元素相等,如果第三大元素还小于最大元素,就要使用操作二,有两种情况: 1.第三大元素和最大元素的差值为奇数,这时无法通过操作二直接增加到最大元素,就要将其余两个元素再各加1,这样差值就为偶数了 2.差值为偶数,可以直接将第三大元素增加ceil((a1−a3)/2.0)ceil((a_1-a_3 )/ 2.0)ceil((a1 −a3 )/2.0),三个元素相等,万事大吉 在模拟过程中要使用变量记录操作次数 Code:Code:Code:
蒟蒻 · 西域春(半退)
#include <iostream> #include <algorithm> int a[4]; using namespace std; int main() { int T; cin >>T; }
抓🐀超级坏坏坏坏孙博鹏老鼠🐀
T4 可以先确定大小,假设从大到小分别为 a,b,ca, b, ca,b,c,那么我们可以对 a,ba, ba,b 同时进行操作 222,直到把 bbb 加到和 ccc 一样大。然后对 aaa 不断的进行操作 111,直到 a>=ba >= ba>=b,如果最后 aaa 比 bbb 和 ccc 都大 111,那么最后还需要对 b,cb,cb,c 都加上 111。
桌子乱的反义词
又来啦! 给个赞吧
孤笑客