UVA 11123 - Counting Trapizoid(计数问题+容斥)

2020-12-13 03:44

阅读:345

标签:style   blog   http   color   width   2014   

UVA 11123 - Counting Trapizoid

题目链接

题意:给定一些点,不重复,求出一共有几个梯形

思路:先把所有两点组成直线求出来,然后排序,斜率相同的C2n个,然后再扣除掉重叠的直线情况和长度相等情况(这样为平行四边形或矩形),由于扣除的时候会重复扣掉重叠和相等,所以在加回来,这是容斥原理。

代码:

#include 
#include 
#include 
#include 
using namespace std;

const double eps = 1e-9;
const double pi = acos(-1.0);
const int N = 205;
int n, ln;
struct Point {
    double x, y;
} p[N];

struct Line {
    double l, a, b, c, k, y;
} l[N * N];

bool cmpk(Line a, Line b) {
    return a.k 

UVA 11123 - Counting Trapizoid(计数问题+容斥),搜素材,soscw.com

UVA 11123 - Counting Trapizoid(计数问题+容斥)

标签:style   blog   http   color   width   2014   

原文地址:http://blog.csdn.net/accelerator_/article/details/36074769

上一篇:Json与数组

下一篇:Web前端行业的了解


评论


亲,登录后才可以留言!