P2911 [USACO08OCT] Bovine Bones G

发布时间 2024-01-04 16:20:35作者: 纯粹的

原题链接

题解,\(O(1)\)做法

简述

先从两个骰子入手,得出\([b+1,a+1]\)内的数出现次数最多
然后再加一个骰子相当于把分布图向右平移c个单位的过程中,每平移一个单位的长度累加和,也就是以c为宽的矩形方框的截面积
然后分类讨论,一定是把方框放在中间偏左位置是最优解

code

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int  s[3];
    cin>>s[0]>>s[1]>>s[2];
    sort(s,s+3);
    int a=s[2],b=s[1],c=s[0];
    if(c>=a-b) cout<<(c-a+b)/2+a+1;
    else cout<<b+c+1;
    return 0;
}