League of Demacia(平面几何)
原题:Gym-101810K
题意:
你能射出一个宽度为z的气功波,杀死所有边界及边界内的敌人,问n个点中是否可以杀死至少m个点
解析:
对于每个点都作为边界进行判断
- 如果距离原点比较远,那么把气功波的左边界按在这个点上
- 如果比较近,把气功波的下边界按在这个点上
我们通过这个边界求出下边界往左方向的单位向量
- 判断一个点是不是在两条左右边界内:点乘是否小于等于Z/2,就是判断在下边界的投影是否超出范围
- 判断是不是在下边界的上侧:判断(O,P)这个向量逆时针转到单位向量的角度是否小于等于Π
注意,因为精度问题,i==j的情况要拎出来
代码:
F eps=1e-8;
const F pi=acos(-1);
D read(){ D ans=0; char last=' ',ch=getchar();
while(ch<'0' || ch>'9')last=ch,ch=getchar();
while(ch>='0' && ch<='9')ans=ans*10+ch-'0',ch=getchar();
if(last=='-')ans=-ans; return ans;
}struct point{F x,y;point(){}point(F x,F y):x(x),y(y){}
};
typedef point Vector;
typedef point Point;
Vector operator + (Vector a, Vector b){//向量加法return Vector(a.x + b.x, a.y + b.y);
}
Vector operator - (Vector a, Vector b){//向量减法return Vector(a.x - b.x, a.y - b.y);
}
Vector operator * (Vector a, double p){//向量数乘return Vector(a.x*p, a.y*p);
}
Vector operator / (Vector a, double p){//向量数除return Vector(a.x / p, a.y / p);
}
int dcmp(double x){//精度三态函数(>0,<0,=0)if (fabs(x) < eps)return 0;else if (x > 0)return 1;return -1;
}
bool operator == (const Point &a, const Point &b){//向量相等return dcmp(a.x - b.x) == 0 && dcmp(a.y - b.y) == 0;
}
double Dot(Vector a, Vector b){//内积return a.x*b.x + a.y*b.y;
}
double Length(Vector a){//模return sqrt(Dot(a, a));
}
double Angle(Vector a, Vector b){//夹角,弧度制return acos(Dot(a, b) / Length(a) / Length(b));
}
double Cross(Vector a, Vector b){//外积return a.x*b.y - a.y*b.x;
}
Vector Rotate(Vector a, double rad){//逆时针旋转return Vector(a.x*cos(rad) - a.y*sin(rad), a.x*sin(rad) + a.y*cos(rad));
}
double Distance(Point a, Point b){//两点间距离return sqrt((a.x - b.x)*(a.x - b.x) + (a.y - b.y)*(a.y - b.y));
}int n,m;F z;
point p[1009],O;int main(){int t=read();while(t--){scanf("%d%d%lf",&n,&m,&z);z/=2.0;for(int i=1;i<=n;i++){scanf("%lf%lf",&p[i].x,&p[i].y);}int ans=0;for(int i=1;i<=n;i++){point l=p[i];//the endpointif(Length(l)>z)l=Rotate(l,acos(z/Length(l)));l=l/Length(l);int sum=1;for(int j=1;j<=n;j++)if(i!=j){if(z>=abs(Dot(p[j],l))){if(Cross(p[j],l)>=0)sum++;}}ans=max(ans,sum);}if(ans>=m)printf("Yes\n");else printf("No\n");}
}
League of Demacia(平面几何)相关推荐
- 基于平面几何精确且鲁棒的尺度恢复单目视觉里程计
标题:Accurate and Robust Scale Recovery for Monocular Visual Odometry Based on Plane Geometry 作者:Rui T ...
- 2017-2018 ACM-ICPC Asia East Continent League Final (ECL-Final) 题解(10 / 13)
2017-2018 ACM-ICPC Asia East Continent League Final (ECL-Final) 9题金 6题银 5题铜 题目比较简单,但是读题太难了- 比赛链接:htt ...
- Codeforce 1255 Round #601 (Div. 2) C. League of Leesins (大模拟)
Bob is an avid fan of the video game "League of Leesins", and today he celebrates as the L ...
- 合流超几何函数_【初中数学大招流】从平面几何到解析几何
写在前面: 本文适合初三学生: 本文所讲的方法,可供平时的学习开拓思维,考试时也许可以帮你得分,但请慎用! 创作不易,喜欢的话不要只收藏呀,双击屏幕有惊喜哦~ 2019.6.2 更新了一道例题& ...
- 2021牛客暑期多校训练营2 G.League of Legends(转化+单调队列)
G.League of Legends Zechariah_2001题解 对于可以包含其他区间的大区间,要使得答案最优无非就是两种分组方式:单独一组或者与被包含的区间一组.单独一组那么贡献就是区间长度 ...
- threejs创建平面几何形状
创建平面几何形状 平面几何形状有三种:点,线,面三种,下面说说用threejs创建这几种形状的方法. 创建点 创建点可以使用Points类. function createPoints(){//创建一 ...
- LEAGUE TABLES【模拟】
LEAGUE TABLES 时间限制: 1 Sec 内存限制: 128 MB 提交: 349 解决: 150 [提交] [状态] [命题人:admin] 题目描述 League football (k ...
- 电竞高性能主机可以改云服务器吗,无缘主机平台 NBA 2K League电竞联赛将改用高性能PC...
[17173新闻报道,转载请注明出处] 近日,从去年开始就传得沸沸扬扬的NBA 2K League电子竞技联赛现在终于有了最新进展,即今后该联盟举办的所有比赛都会在PC平台上进行,而非PS4或者Xbo ...
- 在unity向量空间内绘制几何(4): 利用平面几何知识画像素直线
这两年像素很火,<我的世界>也要进入国内了. 问题:假如有一个像素平面,既是一个充满四方格子平面,给出任意两个格子的坐标,画出两个格子间的直线. 接下来,尝试在平面几何的角度下思考并解决这 ...
- Nitro League 出品 | P2E 系列 101——第三部分
随着电子竞技和 iGaming 继续以指数速度增长,NFTs在区块链游戏的广阔世界中找到自己的方式只是时间问题.正如大多数数字事物的典型情况一样, NFT 的所有尖端创新都是在游戏行业发现的. 电子竞 ...
最新文章
- 微服务后如何做一次系统梳理
- Zookeeper的安装配置及基本开发
- Comparable接口和Comparator接口
- 根据字符串选择类并完成类的初始化--方法二
- 认识和入门 WebRTC
- 从3年前接触区块链,到开发出装机量最大客户端Geth,看看人家的职业发展之路 | 人物志...
- 不走寻常嵌入式开发路
- 一级域名二级域名区别
- Github删除历史提交记录的方法
- The APR based Apache Tomcat Native library which allows optimal performance in production 问题的解决
- 2022年全球程序员收入报告出炉:国内程序员人均56w年薪。。网友说:我拖后腿了!...
- LiveMe x TiDB丨单表数据量 39 亿条,简化架构新体验
- uclinux + nios (UCLinux在NIOS上的移植)
- linux使用单核_如何使用Linux还原单核计算机
- 论文笔记:Multi-level Alignment Network for Domain Adaptive Cross-modal Retrieval
- vue 使用fs_node.js 中的 fs 模块的使用
- 001-使用docker desktop for mac
- GO对接验证码短信接口DEMO示例
- 现在做哪个行业好赚钱
- 为什么“灵活用工”将成为影响企业寿命的关键?