CTF题目Docker的使用
布置比赛平台用,怕忘了
web
12345678910111213# 使用tutumdocker pull tutum/lamp# 使用run创建实例 -P可以使用随机端口可以通过--name设定名称# https://www.runoob.com/docker/docker-run-command.htmldocker run -d -p 7001:80 tutum/lamp# 使用bash进入实例 2da是piddocker exec -it 2da /bin/bash# 复制文件docker cp index.php 8db:/var/html/index1.php# 查看现有实例docker ps -a# 删除docker container rm 0a990 -f
放置web题,放到/var/www/html下即可
pwn
1234# 使用当前目录的dockerfile创建镜像docker build -t tjuctfwarmup .# 创建实例docker run -d -p "0.0.0.0:7000:8888" -h "tjuctfwar ...
Swift-制作一个macOS上的基金菜单栏程序
成品展示
准备工作
首先新建一个macOS上的APP,选择SwiftUI+AppKit LifeCycle即可,因为SwiftUI的lifecycle并不支持Catalina
https://zhuanlan.zhihu.com/p/87960477
https://zhuanlan.zhihu.com/p/88235396
开始开发
使用的API
http://fund.eastmoney.com/js/fundcode_search.js
所有基金代码名称类型
http://fundgz.1234567.com.cn/js/005827.js
返回基金代码、名称、净值日期、单位净值、估算值、估算增值率、估算时间
http://73.push2.eastmoney.com/api/qt/clist/get?pn=1&pz=21&po=1&np=1&fltt=2&invt=2&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21, ...
算法-并查集
并查集的引入
https://www.bilibili.com/video/BV13t411v7Fs?p=1
讲得很不错
数学模型的一些知识
退火算法(SA)
退火就是在一个温度曲线上,随机选择一个点,类似于封闭环境下,向能量变低的方向进行,可见遗传算法是局部最优解算法,如果要获取全局最优解,则通过产生随机数的方法,逼近全局最优解。
当前的模拟退火算法表示为
讲了一个例题,旅行商问题。
遗传算法
遗传算法是一种比较好的全局搜索算法。
编码和解码
解空间和染色体间进行转换需要进行编码和解码,有实数编码、二进制编码等。
初始种群
采用某种方法生成若干个个题的集合,该集合成为初始种群,可以用随机算法和构造性算法产生。
适应度函数
适应度函数一般由目标函数生成,适应度函数都是越大越好,染色体对应的适应度函数值越大,说明更适合环境,反之则需要被淘汰,故当转换目标函数时,目标函数可能求最大值或者最小值,所以需要对目标函数进行一定的转换。
选择
选择便是结合适应度函数选取出进行重组或者交叉的个体的过程,有几种算法用于选择操作。
交叉
交叉发生在两个或多个染色体之间,是遗传算法产生新解的重要步骤。
单点交叉是对一个染色体产生一个随机数,如果满足一定条件则发生交叉,在选出的两个染色体中随机产生一个交叉点位置,在交叉点位置分离双亲染色体 ...
LeetCode-202101
605. 种花问题 - 20210101
假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。
给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回False。
简单贪心
1234567891011121314151617181920212223242526272829303132333435363738class Solution: # i = 0 && zcnt = 0 zcnt-- => 2->1 4->2 4->6 # i = len-1 && zcnt != 0 zcnt-- => 2->1 4->2 4->6 # normal 3 -> 1 4 -> 1 5 -> 2 7 -> 3 def canPlaceFlowers(self, flowerbed: Lis ...
Combine-Swift中响应式编程的起点
类似RxSwift中的Obserable和Observer,在Combine中有Publisher、Subscriber和Subject
先说说两个协议Publisher和Subscriber
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647public protocol Publisher { /// The kind of values published by this publisher. associatedtype Output /// The kind of errors this publisher might publish. /// /// Use `Never` if this `Publisher` does not publish errors. associatedtype Failure : Error /// Attaches the specified subscriber to ...
算法复习
算法复习
算法分析
复杂度分析
复合变量
数组、链表、树、图等数据结构
空间复杂度
对于非递归程序,我们需要考虑复合变量大小即可
对于递归程序,需要考虑的点有
复合变量
函数调用时的参数
环境栈地址(environment stack address)(这个不是很懂)
·递归深度
时间复杂度
量度被设定为指令数量
解题方法:找到基本操作,数操作数
算法情况分析
对于一个算法,通常有最优平均和最差复杂度,最优复杂度Ω(big-Omega)是最简单的输入样例,其复杂度可能为常数级别,是用处最少的case,而Θ\ThetaΘ(big-theta)平均情况复杂度比较难找,一般取的都是最差情况复杂度,即O(big-oh),算法复杂度的上界往往是最常用的。
对于常见的几种情形,有
logn<nα<an<n!<nn1<logn<n<nlogn<n2<n3<an<n!logn<n^\alpha<a^n<n!<n^n
1 < logn < n < nlogn < n^2 < ...
JsDelivr中Package size exceeded the configured limit of 50 MB.的解决方法
在图床是GitHub + PicGo + JsDelivr的图床环境下,如果图片到达一个级别,就无法靠原来的地址访问了,解决方法是在GitHub随便发布一个Release,然后把路径的/仓库名/改为/仓库名@分支名/即可继续使用
UIKit-UICollectionView的CellForItem 方法Crash的原因
在SelectionView中,我用了一个CellForItem方法来获取已经被选中的Item让其改变背景颜色,但是在有时候这个方法明明没有越界但是返回了nil。
查阅资料说明,只有当Cell是Visible的时候,才会返回,所以对其状态判断一下即可。
123if let cell = collectionView.cellForItem(at: IndexPath(item: selectedIdx, section: indexPath.section)) { (cell as! FBTagCollectionViewCell).toggle()}
SwiftUI-制作一个简易排序GridView
来源: https://stackoverflow.com/questions/62606907/swiftui-using-ondrag-and-ondrop-to-reorder-items-within-one-single-lazygrid
本文主要使用到了onDrag和onDrop方法,此外还有类似的onInsert
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114//// SwiftUIView.swift// Demo//// Created by Zr埋 on 2020/12/1.//import SwiftUIimport UniformTypeI ...