BC C Revenge of Collinearity hdu 5020

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5020

题目描述:给你n 个点,两两不同n<1000,求所有3个点共线的集合有多少个。保证75%数据 n<=100,有33组数据

解题思路:一开始,我想先把所有的斜率都算出来,离散化,搞一搞,但是内存只有32K,靠,真坑。。。

正解是,枚举每个点,作为共线三点最左最下的点,然后极角排序,相同斜率的点为n,ans+= C(n,2)

//#pragma comment(linker,"/STACK:102400000,102400000")
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<string>
#define ll long long
#define db double
#define PB push_back
#define lson k<<1
#define rson k<<1|1
using namespace std;

const int N = 100005;

struct Point
{
    ll x,y;
    Point (ll _x=0,ll _y=0):x(_x),y(_y){}
    void input()
    {
        scanf("%I64d%I64d",&x,&y);
    }
    ll operator * (const Point &t) const
    {
        return x*t.y-t.x*y;
    }
    Point operator - (const Point &t) const
    {
        return Point(x-t.x,y-t.y);
    }
} p[N],a[N];

Point pbase;
bool polarsort(const Point &c,const Point &d)
{
    return (c-pbase)*(d-pbase)>0;
}

int main()
{
#ifdef PKWV
    freopen("in.in","r",stdin);
#endif // PKWV
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int n;
        scanf("%d",&n);
        for(int i=0;i<n;i++) p[i].input();
        int ans=0;
        for(int i=0;i<n;i++)
        {
            int cnt=0;
            for(int j=0;j<n;j++)
            {
                if(i!=j&&(p[j].x>p[i].x||p[j].x==p[i].x&&p[j].y>=p[i].y))
                    a[cnt++]=p[j];
            }
            pbase=p[i];
            sort(a,a+cnt,polarsort);
            for(int j=0;j<cnt;)
            {
                int k=j;
                int num=0;
                while(k<cnt&&(a[k]-pbase)*(a[j]-pbase)==0) k++,num++;
                if(num>1)
                {
                    ans+=num*(num-1)/2;
                }
                j=k;
            }
        }
        printf("%d\n",ans);
    }
    return 0;
}


数据集介绍:多类别动物目标检测数据集 一、基础信息 数据集名称:多类别动物目标检测数据集 图片数量: - 训练集:6,860张图片 - 验证集:1,960张图片 - 测试集:980张图片 总计:9,800张含动态场景的动物图像 分类类别: Alpaca(羊驼)、Camel(骆驼)、Fox(狐狸)、Lion(狮子)、Mouse(鼠类)、Ostrich(鸵鸟)、Pig(猪)、Rabbit(兔子)、Rhinoceros(犀牛)、Shark(鲨鱼)、Sheep(绵羊)、Snake(蛇)、Whale(鲸鱼) 标注格式: YOLO格式标注,包含目标检测所需的归一化坐标及类别索引,适用于YOLOv5/v7/v8等系列模型训练。 数据特性: 覆盖航拍、地面视角等多种拍摄角度,包含动态行为捕捉及群体/单体目标场景。 二、适用场景 野生动物监测系统: 支持构建无人机/红外相机AI识别系统,用于自然保护区动物种群追踪与生态研究。 智慧农业管理: 适用于畜牧养殖场动物行为分析、数量统计及健康监测等自动化管理场景。 生物多样性研究: 为陆地/海洋生物分布研究提供标注数据支撑,助力濒危物种保护项目。 教育科研应用: 可作为计算机视觉课程实践素材,支持目标检测、迁移学习等AI教学实验。 三、数据集优势 跨物种覆盖全面: 包含13类陆生/水生动物,涵盖家畜、野生动物及濒危物种,支持复杂场景下的模型泛化训练。 动态场景丰富: 捕捉动物运动、群体互动等真实行为模式,提升模型对非静态目标的检测鲁棒性。 标注体系规范: 严格遵循YOLO标注标准,提供精确的边界框定位,支持即插即用的模型训练流程。 多场景适配性: 数据来源涵盖航拍影像、地面监控等多维度视角,适用于农业、生态保护、科研等跨领域应用。 类别平衡优化: 通过分层抽样保证各类别数据分布合理性,避免长尾效应影响模型性能。
数据集介绍:陆生动物多场景目标检测数据集 一、基础信息 数据集名称:陆生动物多场景目标检测数据集 数据规模: - 训练集:9,134张图片 - 验证集:1,529张图片 - 测试集:1,519张图片 分类类别: - 家畜类:Cattle(牛)、Horse(马)、Sheep(羊) - 宠物类:Cat(猫)、Dog(狗) - 野生动物类:Bear(熊)、Deer(鹿)、Elephant(大象)、Monkey(猴子) - 禽类:Chicken(鸡) 标注格式: YOLO格式标注,包含目标边界框坐标和10类动物标签,支持多目标检测场景 数据特性: 涵盖俯拍视角、户外自然场景、牧场环境等多角度拍摄数据 二、适用场景 农业智能化管理: 支持开发牲畜数量统计、行为分析系统,适用于现代化牧场管理 野生动物保护监测: 可用于构建自然保护区动物识别系统,支持生物多样性研究 智能安防系统: 训练农场入侵检测模型,识别熊等危险野生动物 宠物智能硬件: 为宠物智能项圈等设备提供多动物识别训练数据 教育科研应用: 适用于动物行为学研究和计算机视觉教学实验 三、数据集优势 物种覆盖全面: 包含10类高价值陆生动物,覆盖畜牧、宠物、野生动物三大场景需求 标注质量优异: YOLO格式标注严格遵循标准规范,支持YOLOv5/v7/v8等主流检测框架直接训练 场景多样性突出: 包含航拍视角、近距离特写、群体活动等多种拍摄角度和场景 大规模训练保障: 超12,000张标注图片满足深度神经网络训练需求 现实应用适配性: 特别包含动物遮挡、群体聚集等现实场景样本,提升模型部署效果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值