Codeforces 598F Cut Length 题解

该博客详细解析了Codeforces 598F问题,即如何计算一条直线与给定多边形相交部分的长度。通过叉乘和方向标记的方法确定线段是否在多边形内部,并利用距离比值乘以直线向量模来求解线段长度。
摘要由CSDN通过智能技术生成
题意
按顺时针或逆时针顺序给你一个多边形的顶点,问一条线与多边形相交截得的线一共有多长
思路
可以通过计算几何的叉乘以及方向标记来判断截得的线的长度和方向,标记方向时根据一条边两顶点与直线上一点的叉乘的符合的差来标记,只有前缀和不为0时这条线段才在多边形内,另外长度可以先算出与给定的直线上的两点的距离的比值,最后乘以直线上向量的模
代码
#include <cstdio>
#include <queue>
#include <cmath>
using namespace std;
#define eps 1e-5
double x[1001],y[1001];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值