[ZOJ1460]The Partition of a Cake

YOLO26算法心电图十二导联目标检测+训练好的模型+368张数据集+pyqt可视化界面.zip 附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[导联I(I), 导联II(II), 导联III(III), 胸导联V1(V1), 胸导联V2(V2), 胸导联V3(V3), 胸导联V4(V4), 胸导联V5(V5), 胸导联V6(V6), 加压肢体导联aVF(aVF), 加压肢体导联aVL(aVL), 加压肢体导联aVR(aVR)] · 训练集:313 张 · 验证集:37 张 · 测试集:18 张 · 总计:368 张 该数据集聚焦于临床心电图信号的精准识别与定位,其核心检测目标为标准12导联心电图中的各个独立导联波形区域,涵盖肢体导联(I、II、III)与加压肢体导联(aVR、aVL、aVF),以及胸前导联(V1至V6),适用于心电图自动分析系统中对各导联位置的快速准确标注与分类。数据采集场景真实还原了医院心电图室或急诊监护环境下的标准心电图记录纸,波形清晰、基线稳定,具有高度临床参考价值。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 57 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9708** mAP50-95 | 0.6344 Precision | 0.8990 Recall | 0.9191 train/box_loss | 1.2231 train/cls_loss | 0.9703 val/box_loss | 1.2779 val/cls_loss | 0.... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。 立即下载

ZOJ:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1460


题目大意:
有一块1000*1000的蛋糕,切几刀以后问切成了几块。
题中说:"The intersections of the cut line and the cake edge are two"即每一刀和蛋糕的边缘交点为两个。描述每一刀的时候就是用这两个交点描述的。(在台湾的一个BBS上看到有人说有的时候交点并不是两个,那么应该切的正好是蛋糕边缘)。


解题思路:
记蛋糕被切成了ans块
初始时候ans==1。
之后每切一条直线,这条直线和以往刀切的直线的不同交点数记为tmp,则ans+=tmp+1。这个规律其实我是画了几个图看出来的,不知道是不是可以证明正确性。
比较关键的是要判断线段的相交,再求交点。

做之前有同学提醒一定要注意极限数据,猜想应该有一些比较诡异的输入,所以写代码的时候对输入的切痕做了两个判断:1)是否是切在蛋糕边缘,是则忽略;2)是否和以前的某一条切痕重合,是则忽略。不知道是不是因此躲过了某些极限数据。


源代码

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
#define maxn 20 

const double EPS=1e-5;

typedef struct vect{
    int x,y;
    vect(int a=0, int b=0):x(a),y(b){}
    vect operator-(vect a)
    {
        return vect(x-a.x, y-a.y);
    }
    int operator/(vect a)
    {
        return x*a.y-y*a.x;
    }
    bool operator==(vect a)
    {
        return (x==a.x && y==a.y);
    }
}vect;

typedef struct dvect{
    double x,y;
    bool operator==(dvect a)
    {
        return (fabs(x-a.x)<EPS && fabs(y-a.y)<EPS);
    }
}dvect;

typedef struct segment{
    vect v1, v2;
    bool operator==(segment a)
    {
        return ((v1==a.v1&&v2==a.v2)||(v1==a.v2&&v2==a.v1));
    }
}segment;

segment seg[maxn];

bool check(int i)
{
    //检查是不是和以前的重复 
    for (int j=0; j<i; j++)
        if (seg[i]==seg[j]) return false;
    //检查是不是切蛋糕边缘 
    if (seg[i].v1.x==seg[i].v2.x && (seg[i].v1.x==0 || seg[i].v1.x==1000)) return false;
    if (seg[i].v1.y==seg[i].v2.y && (seg[i].v1.y==0 || seg[i].v1.y==1000)) return false;
    return true;
}

int min(int x, int y){if (x>y) return y; return x;}
int max(int x, int y){if (x>y) return x; return y;}

int multiply(vect p1, vect p2, vect p0)
{
    int tmp=(p1-p0)/(p2-p0);
    return (tmp>0)?1:(tmp==0)?0:-1;
}

bool cross(segment seg1, segment seg2)
{
    return( (max(seg1.v1.x,seg1.v2.x) >= min(seg2.v1.x,seg2.v2.x))&&     //u中最右的点是否在v最左的点的右边
            (max(seg2.v1.x,seg2.v2.x) >=min(seg1.v1.x,seg1.v2.x))&&     //v中最右的点是否在u最左的点的右边
            //判断这两条线段在水平层面上是否可能相交
            (max(seg1.v1.y,seg1.v2.y) >=min(seg2.v1.y,seg2.v2.y))&&     //u中最上的点是否在v最下的点的上边
            (max(seg2.v1.y,seg2.v2.y) >=min(seg1.v1.y,seg1.v2.y)) &&     //v中最上的点是否在u最下的点的上边
            //判断这两条线段在垂直层面上是否可能相交
            (multiply(seg1.v1, seg1.v2, seg2.v1)*multiply(seg1.v1, seg1.v2, seg2.v2)<0) &&
            (multiply(seg2.v1, seg2.v2, seg1.v1)*multiply(seg2.v1, seg2.v2, seg1.v2)<0));
}

dvect crossvect(segment seg1, segment seg2)
{
    vect p1=seg1.v1, p2=seg1.v2;
    vect q1=seg2.v1, q2=seg2.v2; 
    dvect ret;  
    double tmp1,tmp2;  
    //求x坐标  
    tmp1 = (q2.x-q1.x)*(p1.y-p2.y)-(p2.x-p1.x)*(q1.y-q2.y);  
    tmp2 = (p1.y-q1.y)*(p2.x-p1.x)*(q2.x-q1.x) + q1.x*(q2.y-q1.y)*(p2.x-p1.x)-p1.x*(p2.y-p1.y)*(q2.x-q1.x);  
    ret.x = tmp2/tmp1;  
    //求y坐标    
    tmp1 = (p1.x-p2.x)*(q2.y-q1.y)-(p2.y-p1.y)*(q1.x-q2.x);  
    tmp2 = p2.y*(p1.x-p2.x)*(q2.y-q1.y) + (q2.x- p2.x)*(q2.y-q1.y)*(p1.y-p2.y)-q2.y*(q1.x-q2.x)*(p2.y-p1.y);  
    ret.y = tmp2/tmp1;  
    return ret;  
} 

int main()
{
    int n, ans, tmp, vnum;
    dvect cp;   //cross point
    dvect v[maxn];
    while (scanf("%d",&n)==1 && n)
    {
        ans=1;
        for (int i=0; i<n; i++)
        {
            scanf("%d%d%d%d", &seg[i].v1.x, &seg[i].v1.y, &seg[i].v2.x, &seg[i].v2.y);
            if (!check(i)) continue;
            tmp=0; vnum=0;
            for (int j=0, k; j<i; j++)
                if (cross(seg[i], seg[j])){
                    cp=crossvect(seg[i], seg[j]);
                    for (k=0; k<vnum; k++)
                        if (cp==v[k]) break;
                    if (k==vnum)
                    {
                        tmp++;
                        v[vnum++]=cp;
                    }
                }
            
            ans+=tmp+1;
        }
        printf("%d\n", ans);
    }
    return 0;
}


企业级AI助手平台 开箱即用的全栈AI平台,支持多智能体协同、Supervisor模式编排、多种决策模式、RAG技术和流程编排能力 支持多厂商大模型统一接入与管理,安全可控的企业知识库与高精度检索优化 企业级AI应用开发框架,支持多厂商大模型统一接入与管理,安全可控的企业知识库与高精度检索优化能力,提供可视化流程编排、自主决策智能体与多智能体协同调度,兼容主流 Agent Skill 协议,帮助企业与开发者零门槛快速构建安全、高效、可落地的AI智能体应用与行业解决方案。 立即下载

相关推荐

如何利用GMS构建地下水数值模拟模型?

第一步:点图中三维网格的图标然后点Grid→Create Grid这个界面是用于创建一个有限差分网格的设置窗口。它允许你定义网格在三维空间中的范围、分辨率以及其他相关属性。这个界面提供了一个直观的方式来定义一个三维的有限差分网格,你需要指定每个维度上的范围、划分的单元格数量,以及一些控制单元格大小分布和网格方向的参数。这个网格通常会被用于数值模拟,例如地下水流模拟。在点击 "OK" 之前,请务必仔细检查所有参数是否符合你的建模需求。1. X-Dimension (X 轴维度)2. Y-Dimension (

weixin_44259522的博客 2093

zoj 1460 The Partition of a Cake

输入坑姐啊!!!因为采用的是离散的方法,也就是类似http://blog.youkuaiyun.com/zxy_snow/article/details/6581745这个题的方法,这个求蛋糕的块数,也就是这个平面图的面数 - 1.根据欧拉定理,连通平面图(圆相交的图一定是平面图)满足 V

小媛在努力~ 940

京东联盟h5st(3.1)加密参数逆向实战与反爬对抗策略

本文详细解析了京东联盟h5st(3.1)加密参数的逆向分析与实战破解过程。通过接口分析定位关键加密函数,拆解h5st结构并还原其基于SHA256和HMAC-SHA256的加密逻辑,最终使用Python集成JavaScript环境成功复现加密算法,并分享了应对反爬的频率限制、IP封禁及算法升级等对抗策略。

weixin_29246195的博客 1738

ZOJ 1460 The Partition of a Cake 线段相交

原题见ZOJ 1460(zoj网站经常挂,还是链到NJOJ吧) 一个正方形蛋糕边长为1000,并给了四个点位置固定。 现在上面切n条线,请问可以被切成几块。思路先考虑直线的切割。若在原图中已经有若干条直线,再增加一条直线,和原图有k个交点,则平面块数将增加k+1. 当交点发生重叠时,则应该增加的块数(边长为0的一块东西)不计入。 现考虑在正方形中的切割,则只需在原本增加的块数中减去2块,即向

Ugly Gardon 794

EMC(6)——电磁场的屏蔽

假如,机箱没有开口缝隙,比如篮球这种壳体,屏蔽效能都能达到100dB,100dB,基本上把电磁场强度能衰减万倍的关系,所以,这种方式屏蔽效能非常高。一般,钣金机箱,缝隙很大,大家目视就可以看到,铝铣的机箱,比较平整,但实际情况,表面其实也是坑坑洼洼,只是,大家肉眼看不出来而已!这种安装方式,是直接在缝隙增加导电材料,存在一个问题,就是,手法温柔点,压缩度会不够,手法粗暴点,过度压缩。所以,不是说,用金属机箱就能起到屏蔽效果,重要的是,要做好机箱孔缝电磁兼容设计,否则,是金属机箱,也是摆设。

qq_39825125的博客 2180

CANFD升级踩坑实录:DBC转换时DLC大于8的信号怎么处理?

本文详细探讨了CANFD升级过程中DLC大于8的信号处理问题,提供了工程化解决方案和AutoSar BSW层配置要点。通过分析CAN与CANFD的DLC本质差异,提出信号拆分重组、DLC重映射和协议层适配三种策略,并给出验证与测试方案,帮助开发者避免数据截断和通信故障。

weixin_42521843的博客 228

[ZOJ1413][POJ1021] 2D Nim 非人品解法

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1413POJ: http://poj.org/problem?id=1021题目大意:其实和Nim问题是没有关系的。给出两个玩2D-Nim游戏的棋

Dango's happy life 1570

具身智能四大技术路线:VLA、大小脑、世界模型与强化学习

具身智能是机器人实现感知-决策-执行闭环的核心范式,其本质在于物理世界中的具身化交互能力。技术演进围绕如何高效建模环境、理解指令并生成鲁棒动作展开,衍生出四大主流路径:视觉-语言-动作(VLA)端到端学习、大小脑分层控制、世界模型驱动预测,以及强化学习原生策略优化。VLA强调多模态对齐与泛化能力,适合语义理解优先场景;大小脑架构兼顾实时性与可解释性,是工业落地的高可靠选择;世界模型追求内在物理模拟,代表长期认知跃迁方向;强化学习则扎根仿真试错,在力控、抓取等连续控制任务中展现强鲁棒性。本文聚焦这四大路线的技

weixin_32181267的博客 291

[ZOJ1144][POJ1104] Robbery

ZOJ:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1144POJ:http://poj.org/problem?id=1104题目大意:有大盗光顾了一个W*H的矩形城市。给出一些信息,t时刻大盗不在矩

Dango's happy life 1400

【Unity报错】Unity导入海康SDK 报错 DllNotFoundException: PlayCtrl assembly

2.尝试按网上其他的办法(包括使用depengs查看dll依赖等)1.先检查Plugins文件夹中是否存在PlayCtrl文件。3.如果网上查阅的办法都不能解决,请继续往下看。更换低版本的SDK库文件。

weixin_42968584的博客 1126

串口通信协议

文章目录前言一、串口通信结构图二、电平三、串口通信协议 前言 本文记录的是平时常用的串口通信有关知识点 提示:以下是本篇文章正文内容,下面案例可供参考 一、串口通信结构图 1、RS232标准串口通讯结构图 2、USB转串口通讯结构图 3、原生的串口到串口 二、电平 串口通信的时候,有三种电平:TTL电平、RS232电平、USB电平 TTL电平是从MCU直接出来的电平 RS323是一种通讯标准,因为高电平+15V低电平–15V电位差30V容错空间大,抗干扰能力强,一般用于工业设备直接通信电平转换芯

weixin_43772611的博客 6847

[ZOJ1462][POJ1112] Team Them Up!

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=462POJ: http://poj.org/problem?id=1112题目大意:把一些人分成两组,每一组中的人满足任意两个人都相互认识,且要求两组

Dango's happy life 1265

嵌入式AI实战:基于RK3588部署YOLOv11并集成OpenCV实现实时推理(全流程详解)

本文详细介绍了在RK3588芯片上部署YOLOv11目标检测模型的全流程,包括环境搭建、模型转换和实时推理实现。主要内容为:1)通过YOLOv11官方工具将PyTorch模型转为ONNX格式;2)使用RKNN Toolkit2将ONNX模型转换为适配RK3588的RKNN格式;3)在RK3588上结合OpenCV实现实时视频推理功能。教程提供了完整的代码示例和详细步骤说明,帮助开发者快速在边缘设备上部署目标检测模型,实现AI视觉应用的落地。

LXY_LOVE36的博客 212

[ZOJ 1116 ] [ POJ 1911 ] A Well-Formed Problem

ZOJ:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1116题目大意:(对XML没有了解,只是按照字面意思理解了一下题意)与这样有起始结束声明的,name称为tag是empty el

Dango's happy life 1233

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

[ZOJ1021] The Willy Memorial Program

【题目大意】有一些竖直的圆筒状管子,管子间有理想的水平细管相连。一只蜘蛛停在某跟管子的某个高度上,从第一根管子往系统注水,问前往营救的老鼠有多长时间可以关闭热水阀门。    最终抽象为当水上升到指定位置的时候系统中的总水柱高度。 【解题思路】 AC思路:(参考“狗狗40题搞完纪念“)从第一根管子开始注水,采用优先队列的方式每次选取可注水且纵坐标最大(最低)的地方进行注水。若中途出现溢出现象,则永远

Dango's happy life 1190

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

[ZOJ1518][POJ1291] This Sentence is False

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1518POJ: http://poj.org/problem?id=1291题目大意:有n个句子,编号为1..n,为Sentence XXX is

Dango's happy life 1176

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

[ZOJ1391][POJ1436] Horizontally Visible Segments

题目大意:若两条竖直线段之间可以连一条水平线,这条水平线不与其他竖直线段相交,称这两条竖直线段为“相互可见”的。若存在三条竖直线段,两两”相互可见“,则构成”线段三角形“。给出一些竖直的线段,问一共有多少”线段三角形“解题思路:这道题在刘汝佳的黑书里有解题思路的指导,在图论部分出

Dango's happy life 1134

[ZOJ1301][POJ1137] The New Villa

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1301POJ: http://poj.org/problem?id=1137题目大意:每个房间的开关经常是控制别的房间的灯的。

Dango's happy life 1089

[ ZOJ 1197 ] [POJ 1486] Sorting Slides

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1197 POJ: http://poj.org/problem?id=1486 题目大意: 有一些透明的幻灯片乱放成一大堆。

Dango's happy life 1050

[ZOJ 1387] [POJ 1432] Decoding Morse Sequences

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1387POJ: http://poj.org/problem?id=1432题目大意:给出一个字母的译码表,给出一个有n个单词的字典,给出一串编码。问再给出字典中有多少种不同的解码方式。题目分析:首先编码只有-和.,可以很方便地建立一棵Trie树,还是最熟悉的二叉方

Dango's happy life 1048

[ ZOJ 1043 ][ POJ 1108 ] Split Windows

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1043POJ: http://poj.org/problem?id=1108题目大意:(图见原题)每一个无分割的窗口有一个大写字母标签。每个窗口左上角有大写字母标签,其他三个角有*号,上下边界用-,左右边界用|表示。每个窗口分割可以用一颗二叉树表示,表示方式如下:1

Dango's happy life 1027

[ZOJ 1463] Brackets Sequence

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1463 题目大意:给出括号序列的递归定义:1、空序列2、如果S是括号序列,那么(S) [S]也是3、如果A和B是括号序列,那么AB也是给出一个串,添加最少的()[]使串变为括号序列,输出结果。 解题思路:一直不记得在哪里做过,不过只需要输出添加的括号数……比较经典的DP模型,

Dango's happy life 939

[ZOJ1426 ][POJ1693] Counting Rectangles

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=426POJ: http://poj.org/problem?id=1693题目大意:给出一些水平和竖直线段,问围城多少矩形。注意简

Dango's happy life 719

[ZOJ 1298][POJ 1135] Domino Effect

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1298POJ: http://poj.org/problem?id=1135题目大意:    有n个关键骨牌 (1     总是从n=1的骨牌开始推倒。    输出最后倒下的骨牌的倒下时间和位置(最后倒下的是某个关键骨牌,或者某两个关键骨牌之间)解题思路:    首

Dango's happy life 689
上一篇: [ZOJ1123] Triangle Encapsulation
下一篇: [ZOJ1144][POJ1104] Robbery
program_shun
博客等级 码龄17年 10粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值