牛客練習賽71 B 烙印(判斷構成三角形個數)

2021-10-12 08:31:09 字數 2528 閱讀 8428

題解**

蒟蒻的收穫

後記點此處跳轉題目

ynoi 是乙個可愛的女孩子,她想要設計乙個獨特的烙印。

ynoi 認為,烙印必須得是乙個三角形的。但是她太忙了,所以她找到了 syksykccc 幫忙。

syksykccc 接到這個任務後,覺得太簡單了,所以他給了這個三角形 3 個限制。眾所周知,三角形的六要素是三條邊和三個角,所以 syksykccc 規定了其中三個元素的值,他現在想要考考你,滿足這 3 個條件的三角形有多少種?

每個測試點的第一行是乙個正整數 t,表示有多少組資料。

每組資料報含六個正整數,分別記作 a,b,c,∠a,∠b,∠c。前三個表示三條邊,單位是厘公尺,後三個表示三個角,單位是度數。如果這個資料不給出,則用 −1 代替。規定 a 的對角為 ∠ab 的對角為∠b,c 的對角為∠c。

對於每組資料,輸出乙個整數,表示可以得到的不全等的烙印的數量。如果沒有符合要求的烙印輸出 0,有無限符合要求的輸出 「syksykccc」。

給定3個邊角條件判斷構成幾個三角形

1.每一種情況前先判斷是否能構成三角形,否:輸出0,是:往下判斷

2.給定3角,無限個

3.給定2角,1個(角角邊、角邊角)

4.給定1角,

邊角邊:1個;

邊邊角:

· 直角、鈍角——1個,

· 銳角——

· · ·若角對邊是最大邊,1個,反之,判斷角所對直角邊

· · · · · 對邊《直角邊(不存在);

· · · · · 對邊=直角邊(需要算pi的誤差):1個;

· · · · · 對邊》直角邊:2個

5.給定0角,1個(邊邊邊)

重點:需要考慮清楚全部情況

#include

#include

const double pi

=3.14159265

;const double minx =

1e-7

;using namespace std;

int main()

if(b ==-1

)if(c ==-1

)if(jiao ==3)

else

}else

if(jiao ==0)

else

}else

if(jiao ==2)

else

}else

//下面是bbj,要分情況判斷

elseif(

a+b+

c>=88)

else}if

(b!=-

1)else}if

(c!=-

1)else}}

else

zjb =

(double)

sin(

(double)a/

180.0*pi

)* c;

//cout << zjb << " " << b << endl;if(

(double)a < zjb)

elseif(

fabs

((double)a - zjb)

< minx)

else

if(a >= c)

else}if

(b!=-

1)zjb =

(double)

sin(

(double)b/

180.0*pi

)* a;

//cout << zjb << " " << b << endl;if(

(double)b < zjb)

elseif(

fabs

((double)b - zjb)

< minx)

else

if(b >= a)

else}if

(c!=-

1)zjb =

(double)

sin(

(double)c/

180.0*pi

)* a;if(

(double)c < zjb)

elseif(

fabs

((double)c - zjb)

< minx)

else

if(c >= a)

else}}

}}return0;

}

const double minx =

1e-7

;fabs

((double)a - zjb)

< minx

#include

const double pi

=3.14159265

;zjb =

(double)

sin(

(double)c/

180.0*pi

)* a;

乙個把初中知識全還給班主任的蒟蒻複習了三角形全等定理,三角形構成

這是蒟蒻的第一篇部落格,蒟蒻太菜了**長度達到了4000,本蒟蒻的簡單**還望大家不要嫌棄

牛客練習賽71 B 烙印 (幾何)

題面 思路 設 cnt angle 代表資料中給出的角的個數,那麼我們不妨對 cnt angle 為 0,1,2,3 進行分類討論處理 那麼我們只需要判斷三個邊是否構成三角形即可,若構成則答案為1,否則答案為0.判斷的方法有很多種,比較好寫的是判斷三個邊的和是否大於三個邊中最大值的二倍。我們將給定的...

特殊判斷 牛客練習賽71 A 回文數

題目 首先出現奇數次的數超過1顯然無解 並且只有多個0或者只有乙個非0數字並且其它都是0也無解 然後由於沒有前導0所以先要找到最小的非0數,先佔據首尾 最後按照常規方法前一半從左到右依次遞增 注意如果只有乙個非0數字並且出現奇數次以及其它都是0不一定無解,成功因此罰了兩次時 include defi...

牛客練習賽4 B

思維題,把 i2 j2 ai2 aj2 絕對值符號去掉後,我們設i2 j2 ai2 aj2 j2 i2 aj2 ai2 j2 aj2 i2 ai2 或者 i2 j2 ai2 aj2 j2 i2 aj2 ai2 ai2 i2 aj2 j2 原式化簡後只有這兩種形式,那麼我們可以設定兩個陣列a n b ...