#include<bits/stdc++.h>
#define mid ((l+r+1)>>1)
#define double long double
using namespace std;
const double eps=1e-15;
const double inf=1e15;
const int maxn=2e5+10;
int n,cnt=0;double X,Ya,Yb;
inline int sgn(double x){
if(x>eps) return 1;
if(x<-eps) return -1;
return 0;
}
struct Grid{
double x,y;
Grid(double X=0,double Y=0){
x=X,y=Y;}
friend inline Grid operator+(const Grid &a,const Grid &b){
return Grid(a.x+b.x,a.y+b.y);}
friend inline Grid operator-(const Grid &a,const Grid &b){
return Grid(a.x-b.x,a.y-b.y);}
friend inline Grid operator*(const Grid &a,const double &b){
return Grid(a.x*b,a
[HNOI2012] 射箭
本文详细解析了HNOI2012竞赛中的射箭题目,探讨了射箭过程中的物理原理、算法设计以及解题思路,帮助参赛者理解并掌握此类问题的解决方法。
摘要由CSDN通过智能技术生成