題面:
思路:設\(cnt\_angle\)代表資料中給出的角的個數,
那麼我們不妨對\(cnt\_angle\)為\(0,1,2,3\)進行分類討論處理:
那麼我們只需要判斷三個邊是否構成三角形即可,若構成則答案為1,否則答案為0.
判斷的方法有很多種,比較好寫的是判斷三個邊的和是否大於三個邊中最大值的二倍。
我們將給定的角轉化為角\(\mathit a\),
如果角\(\mathit a\) 的對邊\(\mathit a\) 的沒有給出,那麼兩邊夾一角唯一確定乙個三角形。
否則對面給出了:
如果\(90\leq a\),即該角度為直角或鈍角,根據大邊對大角的性質,對邊\(\mathit a\) 要大於給出的另外乙個邊。
角\(a<90\)的話,判斷對邊為半徑的圓與沒給出的那個臨邊的交點個數就是答案。
**:
#include #include #include #include #define all(x) (x).begin(), (x).end()
#define sz(a) int(a.size())
#define rep(i,x,n) for(int i=x;i#define pll pair#define gbtb ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define ms0(x) memset((x), 0, sizeof((x)))
#define msc0(x) memset((x), '\0', sizeof((x)))
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define eps 1e-6
#define chu(x) if(debug_switch) cout<= 1;} return ans;}
ll poww(ll a, ll b) ll ans = 1; while (b) a = a * a ; b >>= 1;} return ans;}
void pv(const vector&v) else }}
void pvl(const vector&v) else }}
inline long long readll() c = getchar();} while (c >= '0' && c <= '9') return tmp * fh;}
inline int readint() c = getchar();} while (c >= '0' && c <= '9') return tmp * fh;}
void pvarr_int(int *arr, int n, int strat = 1) repd(i, strat, n) }
void pvarr_ll(ll *arr, int n, int strat = 1) repd(i, strat, n) }
const int maxn = 1000010;
const int inf = 0x3f3f3f3f;
/*** template code * * starts here ***/
#define debug_switch 0
bool check(int a, int b, int c)
int a, b, c, a, b, c;
int solve(double angle, int c, int a)
else
} else if (fabs(dis - a) < 1e-8) else
return ans;
}int main()
if (b != -1)
if (c != -1)
if (sum > 180 || a == 0 || b == 0 || c == 0)
if (cnt_angle == 3) else
} else else if (cnt_angle == 0) else
} else if (cnt_angle == 1)
if (b != -1)
angle = 1.0 * a / 180 * acos(-1);
if (a == -1)
if (a >= 90) else
continue;
}if (b == -1)
if (c == -1)
printf("%d\n", ans);
} else if (cnt_angle == 2) }}
return 0;
}
牛客練習賽71 B 烙印(判斷構成三角形個數)
題解 蒟蒻的收穫 後記點此處跳轉題目 ynoi 是乙個可愛的女孩子,她想要設計乙個獨特的烙印。ynoi 認為,烙印必須得是乙個三角形的。但是她太忙了,所以她找到了 syksykccc 幫忙。syksykccc 接到這個任務後,覺得太簡單了,所以他給了這個三角形 3 個限制。眾所周知,三角形的六要素是...
牛客練習賽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 ...
牛客練習賽69 B
題意 給定n nn個數,乙個x xx表示可以劃分成最多x xx個串,乙個y yy表示在乙個串中最多選擇y yy個數。最後求 i 1x j 1yv al i j sum x sum yval i,j i 1x j 1 y va l i,j v al i,j val i,j val i,j 為 將n n...