BNUOJ 3881 Jigsaw Puzzles

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.... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。 立即下载

USACO Elite 2008 December Competition Silver

题意:给你一些正方形的拼图碎块,每个碎块有四个边,每边都有一个记号,分别是小写字母a-z。其中没有标记的边,也就是边界的边用'0'标记。题目给定一个矩阵,把这些碎块放进去,要求每个边相接的记号必须一样,边界上的边必须是'0'。

解法:DFS。这个操作起来还是挺麻烦的,做处理的时候要小心一些。


#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
#define Up num[0]
#define Right num[1]
#define Down num[2]
#define Left num[3]

char ca,cb,cc,cd;
int r,c,rc;
bool v[110];

class Jigsaw
{
public:
    int serialNumber;
    char num[4];
public:
    void readIn()
    {
        scanf("%d%*c%c%*c%c%*c%c%*c%c%*c",&serialNumber,num,num+1,num+2,num+3);
    }
    void printOut()
    {
        printf("%d %c %c %c %c\n",serialNumber,num[0],num[1],num[2],num[3]);
    }
    int checkCorner()
    {
        int i;
        for (i=0; i<4; i++)
        {
            if (num[i] == '0' && num[(i+1)%4] == '0')
                return i;
        }
        return -1;
    }
    int checkSuit2c()
    {
        int i;
        for (i=0; i<4; i++)
        {
            if (num[i] == ca && num[(i+1)%4] == cb)
                return i;
        }
        return -1;
    }
    int checkSuit3c()
    {
        int i;
        for (i=0; i<4; i++)
        {
            if (num[i] == ca && num[(i+1)%4] == cb && num[(i+2)%4] == cc)
                return i;
        }
        return -1;
    }
    int checkSuit4c()
    {
        int i;
        for (i=0; i<4; i++)
        {
            if (num[i] == ca && num[(i+1)%4] == cb && num[(i+3)%4] == cc)
                return i;
        }
        return -1;
    }
};
Jigsaw js[110];
Jigsaw tb[11][11];
bool check_and_rotate(int x,int y,int d)
{
    int t;
    if (x == 0 && y == 0)
    {
        t=js[d].checkCorner();
        if (t == -1)
            return false;
        tb[x][y].serialNumber=js[d].serialNumber;
        tb[x][y].Left=js[d].num[t];
        tb[x][y].Up=js[d].num[(t+1)%4];
        tb[x][y].Right=js[d].num[(t+2)%4];
        tb[x][y].Down=js[d].num[(t+3)%4];
        return true;
    }
    if (x == 0)
        cb='0';
    else
        cb=tb[x-1][y].Down;
    if (y == 0)
        ca='0';
    else
        ca=tb[x][y-1].Right;
    if (y == c-1)
    {
        cc='0';
        t=js[d].checkSuit3c();
        if (t == -1)
            return false;
        tb[x][y].serialNumber=js[d].serialNumber;
        tb[x][y].Left=js[d].num[t];
        tb[x][y].Up=js[d].num[(t+1)%4];
        tb[x][y].Right=js[d].num[(t+2)%4];
        tb[x][y].Down=js[d].num[(t+3)%4];
        return true;
    }
    else if (x == r-1)
    {
        cc='0';
        t=js[d].checkSuit4c();
        if (t == -1)
            return false;
        tb[x][y].serialNumber=js[d].serialNumber;
        tb[x][y].Left=js[d].num[t];
        tb[x][y].Up=js[d].num[(t+1)%4];
        tb[x][y].Right=js[d].num[(t+2)%4];
        tb[x][y].Down=js[d].num[(t+3)%4];
        return true;
    }
    else
    {
        t=js[d].checkSuit2c();
        if (t == -1)
            return false;
        tb[x][y].serialNumber=js[d].serialNumber;
        tb[x][y].Left=js[d].num[t];
        tb[x][y].Up=js[d].num[(t+1)%4];
        tb[x][y].Right=js[d].num[(t+2)%4];
        tb[x][y].Down=js[d].num[(t+3)%4];
        return true;
    }
    return false;
}
bool DFS(int x,int y)
{
    int i,j;
    if (y == c)
    {
        x++;
        y=0;
        if (x == r)
        {
            for (i=0; i<r; i++)
            {
                for (j=0; j<c; j++)
                {
                    tb[i][j].printOut();
                }
            }
            return true;
        }
        return DFS(x,y);
    }
    for (i=0; i<rc; i++)
    {
        if (v[i] == true)
            continue;
        if (check_and_rotate(x,y,i) == true)
        {
            v[i]=true;
            if (DFS(x,y+1) == true)
                return true;
            v[i]=false;
        }
    }
    return false;
}
int main()
{
    int i,j;
    scanf("%d%d",&r,&c);
    rc=r*c;
    for (i=0; i<rc; i++)
    {
        js[i].readIn();
        v[i]=false;
    }
    DFS(0,0);
    return 0;
}


基于FFT的阵列方向图快速计算公式推导 因为自己毕设涉及到阵列方向图综合相关知识,最近阅读了关于方向图综合的相关文献,就其中关于使用FFT计算阵列方向图的方法进行了公式推导。 简介: 自从1965年Colley-Tukey发表快速傅里叶变换[1]论文以来,FFT在许多科学技术领域获得了广泛和成功的应用。在阵列信号处理与雷达信号处理领域,随着科技的发展,对于电尺寸较大的相控阵天线,使用公式按照级数求和计算天线阵列方向图的方法效率甚低,... 阅读详情

相关推荐

(10)Proteus 8.9上的STM32仿真系列(HAL)---freertos

实验设计:通过cubemxide生成freertos工程,然后创建一个 pc13 led灯间隔200ms闪烁的任务。非常遗憾的是proteus8.9仿真失败,实物上没有问题,但还是把流程过一遍。 一、原理图 实物是淘宝上stm32f103 c8t6的核心板,proteus上没有这个芯片,这里图上大概表示一下,用的是核心板自带的pc13引脚的led灯。 二、cubemxide配置 1.RCC如之前工程一样配置 2、配置SYS timebase Source不要使用systick,自己选择一个定时器,我这

qq_35442550的博客 7342

hdu 6048 Puzzle 思维(8数码问题

传送门 Puzzle Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 92    Accepted Submission(s): 48 Problem Description A Jigsaw p

twh233的算法blog 1047

深入解析STM32驱动AT25DF321A FLASH芯片的SPI通信与数据完整性验证

本文深入解析STM32通过SPI通信驱动AT25DF321A FLASH芯片的全过程,包括硬件连接、驱动函数实现与数据完整性验证。重点介绍SPI配置、读写操作优化及CRC校验方法,确保数据存储的可靠性,为嵌入式存储系统开发提供实用指南。

agile9scrum的博客 1064

【cvpr2018】Solving Arbitrary Jigsaw Puzzles for Unsupervised Representation Learning(自监督)

解决问题: Learning visual features from unlabeled image data a new approach in which the number of configurations can be arbitrarily large while the number of parameters remains unchanged. 相关工作: 聚类...

Always_ease的博客 1221

西门子机床数据采集实战:从828D到840DSL的CNC设备联网与实时监控

本文深入探讨了西门子机床数据采集的实战方案,重点解析了从828D到840DSL等CNC设备如何实现免授权、低成本联网与实时监控。文章通过对比不同型号系统的数据接口差异,提供了详细的配置步骤、核心数据点清单以及避坑指南,旨在帮助工厂技术人员经济高效地挖掘机床数据价值,提升生产管理效率。

weixin_29181861的博客 1327

Altium Designer差分走线实战:从规则设置到阻抗匹配的完整流程

本文详细讲解了在Altium Designer中进行差分走线的完整实战流程,涵盖从原理图定义差分对、PCB布局管理、关键设计规则设置,到利用阻抗计算工具确定线宽与间距,以及布线技巧与等长处理等核心步骤。文章旨在帮助工程师掌握高速PCB设计中差分信号传输的关键技术,确保信号完整性并实现精确的阻抗匹配。

weixin_29163857的博客 255

indesign怎么拼图_【英语陪玩33】 拼图 Jigsaw Puzzle

如果想得到【拼图英语对白PDF栏】,请➕w ❤️ cindesign说明:拼图乐高、积木、钓鱼、挖掘机还有更多更多的英语陪玩,指路????我的收藏:双语陪玩对白来啦Let's solve the jigsaw puzzle.Let's work on this puzzle.来拼拼图吧A Jigsaw is a picture that is broken into many little pieces...

weixin_39897015的博客 970

掌握SiOME:从零构建OPC UA信息模型的完整指南

本文是掌握SiOME工具的完整指南,详细介绍了如何利用这款免费且强大的OPC UA建模工具,从零开始构建信息模型。内容涵盖从获取软件、创建命名空间、定义对象类型与变量,到添加方法、生成XML文件,并最终将其集成到开源的open62541服务器中。通过可视化建模,开发者可以高效、准确地设计复杂模型,大幅提升工业物联网与自动化项目的开发效率。

tcp8optimizer的博客 515

哈理工oj-1049Jigsaw Puzzle解题报告

链接:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1049 这道题我是用的康托展开做的,优化了判断变化后的数的过程,这道题算是一道数学题吧,应该要算是组合数学里的 View Code 1 #include<stdio.h> 2 #incl...

weixin_30606669的博客 277

SAP 打印输出中 `#` 字符替代日文汉字的根本原因与全面解决方案

只要认清设备类型 / 字符集 / 字体三角关系,并合理利用PDFUCSWINCF或 UPE + URDT,LP01里那些恼人的就会彻底消失,日文汉字将在纸面与 PDF 中如预览一样完美呈现。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 813

GaussDB本地安装手册(主备模式)

如果实例状态是Normal,则安装成功。三节点集中式配置文件。

Sebastien23的博客 2633

UVa 11212 Editing a Book

黑书P207 例题 IDA* 搜索,估价函数设计得很经典。 #include #include #include using namespace std; class Board { public: int a[16]; int h; int n; bool readIn() { int i; scanf("%d",

仰望圣光的plusplus7 2068

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

POJ 2870 Light Up

题意简述:在n*m的格子中放置灯泡。其中格子中有些障碍,灯光可以照亮上下左右的格子,光线会被障碍挡住。 题目解法:搜索。         每个状态的转移会产生很多状态,而目标状态有是不固定的,所以不能BFS或双向BFS。但是DFS又很容易陷入搜索到很深但是却又是错误的状态,而最优解的深度又是不深。所以考虑使用迭代加深搜索。         剪枝:搜到每个障碍时,发现上面的格子是空的,剪枝。

仰望圣光的plusplus7 1791

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【博客搬家】本博客已全面停止更新,新博客地址 plusplus7.com

新博客地址:http://www.plusplus7.com

仰望圣光的plusplus7 1532

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

LA 3618 Cubic Eight-Puzzle

立体的八数码问题。         普通的DFS和BFS就别想了,迭代加深TLE,而用启发式搜索又想不到合适的启发函数。可发现目标状态有固定的2^8种,而状态转移的方式最多只有4种......所以用双向bfs,应该能解决问题。因为会产生很多重复的状态,所以用hash表判断一下重复的状态。stl的hash会TLE,所以还是手写静态链表哦。 #include #include #include

仰望圣光的plusplus7 1415

POJ 2132 Cow Math

此题我用的DFS过。 DFS每一条路,用res=gcd(res,now),不断更新res值。当访问到2时,用ans=lcm(ans,res),更新答案,即可。 剪枝:如果当前的ans可以整除当前的res,就剪掉,因为当ans%res=0,必然有lcm(ans,res)=ans。 剩余一个疑问就是:为什么lcm(a,b,c)=lcm(lcm(a,b),c)? #include #i

仰望圣光的plusplus7 1129

POJ 2137 Cowties

题意: n个点集,在每个点集里面选一个点,把所有的点按照编号连接成一个环,使连线长度最短。 解法是,枚举第一个点集的每一个点,设为起始点,逐步递推求长度,最后选择答案最小的那个。 需要注意的是,最后的答案是要输出整数,直接强制类型转换,用%.0f是会WA的。 #include #include #include #include #include using namesp

仰望圣光的plusplus7 1096

POJ 1416 Shredding Company

这题主要还是理解题意。 给你一个数n,和一串长度不超过6的数字。问怎么分割这串数字可以使得分割后的数和不大于n,注意数字的顺序不能打乱。如有多个答案,取最接近n的解。 如果不能成功分割,输出error,如果有多个最佳答案,输出rejected。 解法很简单,就搜索一下就好了~ #include #include #include #include using namespa

仰望圣光的plusplus7 1047

LA 5506 Eight

同样是South Central USA 1998的题,POJ和HDU上的数据比较水,用BFS不加任何优化都可以AC,时间一般是三位数左右。而用A*或IDA*则可以把时间控制在10ms左右,甚至0ms!          然而UVa Live上的这道题是多数据的,用IDA*不加优化都会超时。除此之外题目输入输出很严格,case和case之间必须有空行,在最后一组case之后不能有空行,否则会Wr

仰望圣光的plusplus7 862

POJ 2133 Cow Imposters

因为牌子的种类最多有2^16个,所以搜索一下就可以得到答案。 #include #include #include #include #include using namespace std; struct T { int n; int c; }; queue q; int tar,len,le,v[68000],E[120]; char str[20]="11001"

仰望圣光的plusplus7 860

POJ 1753 Flip Game 状态压缩 枚举

POJ 1753 枚举,压缩状态,bfs~ #include #include #include #include #include using namespace std; int pow2[17]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536}; int change[16]={51200,

仰望圣光的plusplus7 744

POJ 3185 The Water Bowls

此题我是写了个BFS过的,用的队列是STL的queue,960ms过的。。 用2进制来压缩状态,然后列出20种操作数op[i]。 于是在i处的操作就等同于对now=now^op[i],和Flip Game的处理方法一样。 但是他们写的BFS会TLE就不知道为什么了。。还有用DFS过的= = 后来,得知了一个枚举加贪心的方法,但是没法证明是最优的,得去查查资料。 #include #i

仰望圣光的plusplus7 730

BNUOJ 3884 Hay Expenses

看第一眼,觉得是很裸的线段树,再看数据范围。。。就彻底无语了。。。 #include #include using namespace std; int main() { int n,a[510],i,s,e,ans,q; scanf("%d%d",&n,&q); for (i=1; i<=n; i++) { scanf("%d",a+i);

仰望圣光的plusplus7 618

POJ 2531 Network Saboteur

求无向完全图的最大割,n只有20,所以暴力可以过O(20*2^n)。 有个剪枝就是,贪心地选取下一个点。如果发现把点加入另一个集合,割值减少了,就不添加。 然后看了discuss发现有人说可以用什么随机算法过,于是就搜索了一下。。 随机化算法,是这样一种算法,在算法中使用了随机函数,且随机函数的返回值直接或者间接的影响了算法的执行流程或执行结果。随机化算法基于随机方法,依赖于概率大小。

仰望圣光的plusplus7 602

POJ 1426 Find The Multiple

暴力求解,本地打表。 #include #include #include using namespace std; unsigned long long ans[300]={0,1, 10, 10000000000000000011, 100, 10, 10000000000000000110, 10000000000000000011, 1000, 10000000000011111

仰望圣光的plusplus7 563
上一篇: POJ 2140 Herd Sums
下一篇: BNUOJ 4151 Buying Feed II
plusplus7
博客等级 码龄15年 59粉丝 173原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值