# Python 算法科普 在计算几何中,(Convex Hull)是一个重要的概念,广泛应用于图形分析、计算机视觉及模式识别等领域。是一个点集的最小凸多边形,该多边形包围了所有的点。换句话说,如果你有一组点,就像用一根橡皮筋围住这些点所形成的最小区域。 ## 算法简介 有多种算法可以用来计算,其中最常用的有以下几种: 1. **贪婪算法(Graham Scan)*
原创 10月前
56阅读
一、Pybind11,将数据从python传递到C++的两种方式:加“”,能在C++中进行操作,但是不发生数据拷贝,底层的存储方式还是按照python的方式;数据类型转换,从python中的存储方式,直接转换成C++中的数据类型,发生数据拷贝,效率较低,尤其是在数据量比较大的情况下,这种转换的代价很高。这一点非常值得关注,当Python中考虑调用C++接口时,大多情况下都是为了提高程序的运行速率
转载 2024-05-29 08:00:07
61阅读
了解装饰器,要先了解闭包。 1,闭包(closure)闭包是Python所支持的一种特性,它让在非global scope定义的函数可以引用其外围空间中的变量,这些外围空间中被引用的变量叫做这个函数的环境变量。环境变量和这个非全局函数一起构成了闭包。 1 def outer(x): 2 y = [1,2,3] 3 def inner(): 4 pr
我并不会求静态二维包,但是在培训中碰到几个需要使用平衡树来维护包的计算几何题 二维包:求一个周长最小的,并且能够包含所有给定点的多边形。当多边形表面存在凹陷时,根据三角不等式$\begin{cases}a+b>c\b+c>a\a+c>b\end{cases}$,一定没有直接把最短边连起来 ...
转载 2021-09-27 11:50:00
271阅读
2评论
#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include #include #include using
原创 2022-09-09 00:05:38
83阅读
1.动态包是一类经典的题目,题目的大概意思就是:在添加和删除平面上的一些点,然后询问这些点构成的包的信息。典型题目:HA照y...
原创 2022-07-01 10:51:53
84阅读
正题 题目链接:https://codeforces.com/contest/536/problem/C 题目大意 $n$个人,第$i$个人的游泳速度$s_i$,跑步速度是$r_i$。如果跑道长度是$R$,泳道长度是$S$那么一个人的用时就是$\frac{R}{r_i}+\frac{S}{s_i}$ ...
转载 2021-10-07 21:30:00
37阅读
2评论
正题 题目链接:https://www.luogu.com.cn/problem/P3291 题目大意 给出 \(n\) 个数字对 \((atk,dnf)\),求一个$(a,b)$。 对于每个数字对可以选择任意一个实数$k$让其变为$(atk+k\times a,dnf-k\times a)$,但是 ...
转载 2021-09-04 09:32:00
85阅读
2评论
Text之前听lyd_729神犇讲过关于李超树的思想,大概是标记永久化一类的要求支持动态插入直线(线段),动态查询上/下
原创 2018-04-01 15:30:52
76阅读
BZOJ】 1007: [HNOI2008]水平可见直线(
原创 2021-08-11 13:51:28
49阅读
给定一个序列$a_{1\sim n}$,要求从中选出一个子序列$b_{1\sim m}$,最大化$\sum_{i=1}^mi\times b_i$。
转载 2021-04-06 11:36:00
48阅读
目录- 1.注意事项:- 2.资源(懒人直接看(2)(3)):(1)清华大学开源软件镜像站(2)第三方库的网址(3)Anaconda,Visual Studio和各种依赖库集成(百度网盘)- 3.安装库的方法-4.拓展学习 先需要安装 NumPy+mkl,Scipy,cvxopt,scs,ecos,fastcache,osqp,因为这些是cvxpy库的依赖库,没有它们安装不了 版本声明: Py
因为pyinstaller方便、兼容性相对较好,所以我们会经常见到一些用pyinstaller打包的Python程序,在这里我们了解一下如何对这些打包好的exe文件进行反编译(即反编译出.py文件),也可以通过对抗去改进我们程序的保护措施。0.前提准备确认程序我们首先要确认一个exe程序他是不是由pyinstaller编译的,如果不是那就没必要再往下操作了。一般我们可以看程序图标,比较标志性的两个
目录一、预备知识:二、实验环境三、实验步骤一、预备知识:        逆向工程也称为“反向工程”,在信息技术领域是指对一个信息系统或软件进行的逆向分析及研究,从而得到系统或软件的架构和开发源代码等要素,进而对其进一步分析或优化处理。        
转载 2024-06-05 18:45:38
63阅读
Goldenmask 直译为金色的罩子,灵感来自“金钟罩”的“翻译”。因为 Goldenmask 是一个用来对 Python 源码进行加密保护的工具,有点像金钟罩这种防御性武功的意思,因此用了金钟罩这个名字。同时,还引入了一个选项叫做 layer,对应着武功的层数,实际上则代表了不同层级的 Python 源码保护方法。当前,Goldenmask 只有两层功力,一层用的是 Python
包算法是计算几何中的最经典问题之一了。给定一个点集,计算其包。包是什么就不罗嗦了本文给出了《计算几何——算法与应用》中一书所列包算法的Python实现和Matlab实现,并给出了一个Matlab动画演示程序。啊,实现谁都会实现啦╮(╯▽╰)╭,但是演示就不一定那么好做了。算法CONVEXHULL(P) 输入:平面点集P 输出:由CH(P)的所有顶点沿顺时针方向组成的一个列表 1.
转载 2023-08-07 20:57:33
403阅读
利用python指定函数将特定数据框起来,生成包函数:scipy.spatial.ConvexHull() ConvexHull直译是包,表示在一个平面上,我们能找到的最小的将一组数据全部包括在内的集 通俗的来说包就是包围一组散点的最小凸边形 相对的我们也有凹边形 重要参数: 类ConvexHull能够帮助我们创建N维包重要参数points:浮点数组成的n维数组,结构为(点的个数,维度)
转载 2023-10-11 08:51:48
0阅读
包问题求解包问题:输入是平面上n个点的集合Q,包问题是要输出一个Q的包。其中,Q的包是一个凸多边形P,Q中的点或者在P上或者在P中。实现基于枚举方法的包求解算法提示:考虑Q中的任意四个点A、B、C、D,如果A处于BCD构成的三角形内部,那么A一定不属于包P的顶点集合。这一方法属于暴力解法,任意枚举点集中的四个点,如果有一个点在其他三个点构成的三角形内部,则将这个点从点集中剔除。实验主
我们常常看到, 自己用PyInstaller等库打包的exe被别人反编译。而源代码在exe文件中是以字节码形式存储的。掌握了字节码的加密技巧, 就可以防止源代码的反编译。 目录1.字节码是什么2.包装字节码3.压缩字节码4.加字节码(方法一):修改co_code5.加字节码(方法二):混淆变量名6.解压缩, 脱壳字节码总结 1.字节码是什么PyInstaller, py2exe等库会把编译生成
转载 2023-08-11 14:14:41
860阅读
测试地址:水平可见直线 做法:本题需要用到栈+。 通过观察,我们知道从y轴正方向向下看,轮廓肯定是一个下,所以我们把所有直线按斜率从小到大排序,每次插入一条直线,可以知道新插入的直线肯定会在当前的中,那么我们执行下列的过程:若当前栈顶的两条直线交...
转载 2017-12-01 20:11:00
36阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5