C 競賽 F yyy的三角形

2021-09-28 10:03:04 字數 1098 閱讀 7745

時間限制:2s 記憶體限制:32mb

問題描述

yyy對三角形非常感興趣,他有n個木棍,他正在用這些木棍組成三角形。這時***拿了兩根木棍過來,***希望yyy能給他一根木棍,使得***可以組成乙個三角形。yyy想知道他有多少根木棍滿足***的要求。

輸入描述

第一行乙個整數t(1≤t≤5)表示資料組數。

對於每組資料第一行兩個整數n(1≤n≤〖10〗^5 ),q(1≤q≤〖10〗^5),分別表示yyy的木棍數量和***的詢問次數。第二行n個用空格分開的整數l_i (1≤l_i≤〖10〗^9),分別表示yyy的n根木棍的長度。接下來q行,每行兩個整數a,b(1≤a,b≤〖10〗^9),表示***每次詢問兩根木棍的長度。

輸出描述

對於每組資料,輸出q行,每行乙個整數表示答案。

輸入樣例

1 7 2

2 8 5 1 10 5 9

3 9

6 5

輸出樣例 3 6

【題目鏈結】:

【題解】

三角形的三邊要滿足

a+b>c

a+c>b

b+c>a

則轉換一下就是

max(a-b,b-1)

排序後用二分搞出兩個端點就可以了;

【完整**】

#include

#define rep1(i,a,b) for (int i = a;i <= b;i++)

using

namespace

std;

#define pb push_back;

const

int maxn = 1e5+100;

int n,q;

int c[maxn];

int main()

else

l = m+1;

}l = 0,r = n;

int ans2=0;

while (l <= r)

else

r = m-1;

}printf("%d\n",ans2-ans1+1);}}

return

0;}

C 三角形判斷

給定平面上任意三個點的座標 x1,y1 x 1,y 1 x 1 y 1 x2,y2 x 2,y 2 x 2 y 2 x3,y3 x 3,y 3 x 3 y 3 檢驗它們能否構成三角形。輸入格式 輸入在一行中順序給出六個 100,100 100,100 100,100 範圍內的數字,即三個點的座標x1...

c 數字三角形

第一行乙個整數n 1000 表示三角形總共有幾行 第二至第n 1行,給出這個數字三角形 乙個整數,表示一路上所有數的最大和,結果不會超過int64 4 13 2 4 10 1 4 3 2 20 24 include include include using namespace std long l...

求大三角形中三角形個數

一道筆試程式設計題要求求乙個大三角形中所有小三角形的個數,大約是下面這種情況 首先想到是的將問題由求邊長為n的三角形個數 求邊長為n 1的三角形個數 求邊長為1的三角形個數 1,回溯求得所有三角形個數。但是再仔細一看因為有重疊三角形和倒置的三角形,所以這個方法不可行。接著找到三角形個數由三部分組成 ...