题目要求,给N个木棍,从中选3个,问能构成三角形的概率多大。
N<= 1e5.
木棍长度<=1e5.
注意事项:
直接把len开成1e5会TLE。
统计答案的时候可能会爆int。
删除非法情况。
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const double PI = acos(-1.0);
struct Complex {
double x, y;
Complex(double _x=0.0,double _y = 0.0) {
x = _x;
y = _y;
}
Complex operator -(const Complex &b) const {
return Complex(x-b.x, y-b.y);
}
Complex operator +(const Complex &b) const {
return Complex(x+b.x, y+b.y);
}
Complex operator *(const Complex &b) const {
return Complex(x*b.x-y*b.y, x*b.y+y*b.x);
}
};
void change(Complex y[], int len) {
int i,j,k;
for(i = 1, j = len/2; i < len-1; i++) {
if(i < j) swap(y[i],y[j]);
k = len/2;
while(j