牛客小白月賽4 三角形

2021-08-20 19:50:48 字數 848 閱讀 8808

鏈結 :

** 沒啥技巧,直接把所有的的三角形周長存下了,然後刪除乙個點 i,他只會影響i i+1 i+2 點組成的三角,刪除這三個三角,然後把新成的三角和最後乙個比較就行了

#include

using

namespace

std;

const

int n=2e5+10;

#define inf 0x3f3f3f3f

long

long a[n];

long

long b[n];

long

long c[n];

int main()

sort(b+1,b+n+1);

c[0]=c[1]=c[2]=-1;

for(int i=3;i<=n;i++)

sort(c,c+n+1);

while(q--)

ans=max(ans,(i>2&&i1]1]+b[i-2]?b[i+1]+b[i-1]+b[i-2]:-1ll));

ans=max(ans,((i>1&&i1)&&b[i+2]1]+b[i-1]?b[i+2]+b[i+1]+b[i-1]:-1ll));

long

long w[4];

w[0]=w[1]=w[2]=-1;

for(int j=0;j<3;i++,j++)

if(b[i]1]+b[i-2]&&i<=n&&i>2)

for(int j=n;j>=2;j--)

}for(int j=0;j<3;j++,i--)

}cout

<< max(ans,-1ll)0;}

小白月賽4 A 三角形

傳送門 題目大意是,給你n個棍子,然後由q次操作,每次操作都是把編號為x的棍子拿走 每次操作都是針對n個棍子進行操作 然後問你此時這n 1根棍子能不能組成三角形,能的話輸出最長的三角形周長,不能的話輸出 1。思路 要用貪心做,先給n條邊按降序排序,這裡注意要定義乙個結構體,id存這條邊排序前的位置 ...

小白月賽4 A 三角形

傳送門 題目大意是,給你n個棍子,然後由q次操作,每次操作都是把編號為x的棍子拿走 每次操作都是針對n個棍子進行操作 然後問你此時這n 1根棍子能不能組成三角形,能的話輸出最長的三角形周長,不能的話輸出 1。思路 要用貪心做,先給n條邊按降序排序,這裡注意要定義乙個結構體,id存這條邊排序前的位置 ...

牛客 三角形

題解 三角形的判斷 兩邊之和大於第三邊 要求最大第乙個想到的肯定就是排序了 它題目沒說一定按順序給 但是排完順序 你還得知道這根木條原來是在 所以我選擇了結構體 我是從小到大的 從大到小也行 排完順序以後 從最後乙個開始 加符合題意的三個 這裡指下標不等於拿走的 當加到三根時判斷一下這三根是否滿足三...