从leetcode上发现的问题
Manacher算法入门
Manacher算法是一种优化的暴力算法,其精髓在于利用了回文串的基本性质——左右对称性。
Grefenstette编码解码原理和简单实现
遗传算法解TSP问题的时候需要对路径状态进行Grefenstette编码方便染色体交叉一类的操作,Grefenstette编码可以使得过程中不出现非法和重复的交叉操作。
RQNOJ-83 魔兽世界(BFS+带“传送门”路径的通用方法)
题目描述
小A在WOW中是个小术士.作为一名术士,不会单刷副本是相当丢脸的.所谓单刷副本就是单挑BOSS了,这么有荣誉感的事小A怎么会不做呢?于是小A来到了厄运之槌开始了单刷.小A看了看,厄运之槌的地图是一个N*M的矩形(N,M<=100),上面遍布了小怪和传送门.例如(1表示有小怪,0表示无小怪,大写字母表示传送门,传送门:例如,走到 B 传送门点将传送到另一个 B 传送点(次数无限,但每次进入传送点只传送过去,不会在传送回来)数据保证每个传送门有且仅有相对应的另一个传送门):
K-means聚类算法的简单numpy实现
K-means
算法作为一种无监督的学习算法,其实现思路比较简单,就是根据当前设定的$K$个聚类点$p_1,p_2…p_i…p_k$,按照给定的距离公式将每一个点归类到对应的簇$C_i$中,然后对每一个簇重新计算它目前的新聚类点坐标$p_i’$,然后看这个新聚类点是否与聚类之前设定的聚类点$p_i$相同,如果不相同,那么更新这个聚类点,然后继续处理下个簇,直到每个簇的聚类点都不会再发生变化。
一种排列下的子光圈图像合成光场原图像的方法
光场相机拍摄的原图(raw文件)的像素之间是按照一定规则排列的,设光场的角分辨率为$U\times V$,子光圈图像分辨率为$X\times Y$,那么这$U\times V$副图像合成后的原图分辨率应该是$(U*X)\times (V*Y)$,但是不同的相机像素排列方式是不同的,这里总结的方法只适用于需要还原回去的原图排列方式为横纵排列,而不是六边形排列之类的
POJ 1286 Necklace of Beads(Polya入门)
Necklace of Beads
Time Limit: 1000MS Memory Limit: 10000K
Total Submissions: 10622 Accepted: 4293
Description
numpy.where的两种用法
最近看NMS的实现的时候发现代码里有个np.where(…)[0],这个0就显得很有灵性了,以为是取第一个元素,后来发现并不是这样。查了一波后用代码自己写了下,发现某些情况下有点和想象的不一样。尤其是这个函数的两种完全不同的用法。