视频渲染与剪辑
Manim 导出视频 在 manim 文件夹下面 1python -m manim .\mytst.py Position -pl 视频渲染选项 123-pm 1280*740 30fps-pl 854*480 15fps-p 2560*1440 60fps 如果渲染多个场景,把 p 换成 a 文字和位置 123456789101112131415161718192021222324252627282930313233class WriteText(Scene): def construct(self): text = TextMobject("This is some text") # self.play(Write(text)) # 写字动画(从左到右) self.play(FadeIn(text), runtime=3) # 淡入效果, 持续3秒 self.wait(1) # 等待 1 秒(从上一个效果开始计时) self.remove(text) # 文本立即消失...
几何习题
几何习题 二分 ABC181F Silver Woods 题意 有 \(n \le 100\) 个木桩在 \(-100\le y \le100\) 的范围里。你有一个圆,圆的半径你可以选择的。求可以把圆从最左边移动到最右边的最大半径。 思路 首先题目具有单调性:如果一个半径可以移动,那么更小的也可以。如果一个半径不能移动,那么更大的肯定不行。所以我们考虑二分。那给定一个 \(r\) 怎么检查呢。对于两个点\(x,y\),如果 \(r\) 不能从他们之间通过,那么我们就将这两个点连起来。对于上下界\((y=\pm 100)\) 如果不能这个线和这个点之间穿过去,那么我们就连上他们。我们枚举把所有的点都连线完。如果存在一条由上界连向下界的边,那么这个半径就被 “拦住了”不能通过。如果没有就一定存在一条路径可以通过。所以我们用并查集连接就好了,最后检查一下上下界有没有连起来即可。 代码 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455...
构造题
构造 1427D Unshuffling a Deck 题意 每次把序列分成 \(k\) 块, 然后把这 \(k\) 块逆序排雷。块内的元素按照原来的顺序。求一个可行的操作序列,把给定的序列排序成顺序排列 分析 我们发现,每次操作后,所有的数都会倒过来。我们可以每次把 \(1\) 个数字排到正确的位置上。然后最多排 \(n\) 此就可以了。比如 \(4, 3,1,2\) 这个序列,我们先排 \(1\) : \([4,3],[1,2]\) 排列后 \([1,2],[4,3]\) 那么 \(1\) 就被排到正确的位置了,然后我们排 \(n\) : \([1],[2],[4,3]\) 排序后 \([4,3],[2],[1]\) 这样 \(4\) 就排到正确的位置了。已经排好序的拆散排。就可以了。 代码 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071#include &l...
信息安全
BufferOverflow 去这个网站https://exploit-exercises.lains.space/download/ 可以下载镜像。然后再VMware安装上。 进入后使用 user 用户名登录,密码也是 user 进去之后字非常小,我们可以用ssh登录,不过我们首先要查看一下ip地址,使用命令 1ip addr 可以查看 image-20201112200703182 然后我们用ssh连接 1ssh user@192.168.230.132 登录上去后,可以输入 bash 更换shell 然后使用命令 1uname -a 可以查看系统信息 网站上面说练习在 /opt/protostar/bin 这个目录下面 第0个挑战 更改一个变量 123456789101112131415161718#include <stdlib.h>#include <unistd.h>#include <stdio.h>int main(int argc, char **argv){ volatile int modified; ...
网络空间安全
Netzsicherheit 作业 Hack 进入作业的服务器 1nc netsec.net.in.tum.de 20001 Exercise 1 首先安装一下 netcat 1sudo pacman -S netcat base64加密解密 123import base64data_enc = base64.b64encode(data)data_dec = base64.b64decode(data_enc) Networt Insecure Do not Trust a Network Connection 网络是不安全的 Capabilities of Attackers Passive attacks (observation) Eavesdropping of messages Traffic Analysis active attacks (observation + manipulation) All passive attacks Delay Replay Deletion Modificatioin Insertion Attacker Model...
操作系统
C语言 指针 指针的读取规则: 教程:http://unixwiz.net/techtips/reading-cdecl.html [] 数组和 ()函数从左向右读取,* 和 & 从右向左读取 go right when you can, go left when you must 123456789101112long **foo[7];// 是一个二级指针的数组,表示7个二级指针 **foo -> *foo -> longunsigned long int **x();// 表示函数, 函数返回值是 unsiged long int**char *(*(**foo [][8])())[];// foo is ... char// *foo[] => go rihgt => foo is a array ... char// *foo[8] => go right => foo is a array of array of 8// **foo => go left => foo is a array ...
枚举,二分,前缀和
枚举,二分,前缀和 前缀和 ABC181E: Transformable Teacher 1200 题意 \(N \le 2 \times 10^5\) (奇数)个小朋友,第 \(i\) 身高为 \(H_i\) ,老师的身高可以变换,共有\(M \le 2 \times 10^5\) 种形态,第 \(i\) 种身高为 \(W_i\) . 现在小朋友和老师一起做游戏,两个人一组。配对花费为 \[ \sum_{i=1}^{(N+1)/2}|x_i-y_i| \] \(x_i,y_i\) 是第 \(i\) 组两个人的身高 求最小的的配对花费。 分析 老师必定要匹配一个小朋友。那么可以枚举小朋友和老师匹配,剩下的小朋友自己匹配。自己匹配的最优解一定是排序后两个相邻的匹配。小朋友和老师匹配,就是老师选一个和小朋友最接近的升高来匹配。这个可以排序后用二分 \(O(logM)\) 实现。小朋友两两匹配可以用前缀和预处理好, 枚举的时候 \(O(1)\) 查询. 代码 12345678910111213141516171819202122232425262728293031323334353...
动态规划习题
动态规划习题 (R1000-R2300) 状态压缩动态规划 ABC180E: Traveling Salesman among Aerial Cities R1200 题意 有 \(N \le 17\) 个城市的坐标是 \((X_i,Y_i,Z_i)\) , 从坐标 \((a,b,c)\) 到 \((p,q,r)\) 的距离是 \(|p-a|+|q-b|+\text{max}(0,r-c)\) , 求从 \(1\) 号城市出发,访问完所有城市回到 \(1\) 的最小距离 分析 数据量提示较为明显,考虑状压dp. 用一个Bitmask \(S\) 记录访问过的城市。因为从 \(1\) 号城市出发,还要回到 \(1\) 号城市。可以不妨设开始的时候,\(1\) 号城市没有访问,然后访问完一圈之后回到 \(1\) 正好访问完所有的城市. 设 \(f[S][i]\) 是你访问完 \(S\) 集合中的所有城市,现在的位置在 \(i\) ,那么可以写出下面的方程: \[ f[S][i] = \infin \ ,\ f[0][1] = 0\\ f[S][i]= min(f[S][i], f...
数学分析
Analysis 数学分析 实数 数集 \[ \Z=\{所有整数的集合\} \\ \mathbb{R} = \{所有实数的集合\} \\ \Q = \{所有有理数的集合\} \\ \mathbb{N}=\{x\in Z:x\ge 0\} = \mathbb{N}_0 \\ \mathbb{N}_{>0}=\{1,2,3,4,...\}=\{x\in N:x>0\} \] 定义 1.1 子集 \(B\) 是 \(A\) 的子集, \(B \subseteq A\) , 若 \(\forall x \in B \mathbb{R}ightarrow x\in A\) 定义1.2 映射 一个函数 \(f: A\rightarrow B\) 是 injektiv 若 \(\forall_{x \neq y \in A} f(x) \neq f(y)\) surjektiv 若 \(\forall_{y \in B} \exists_{x \in A} f(x)=y\) bijektiv 若 \(f\) 同时 injektiv 和 surjektiv 集合的模 Kardin...
Codeforces Round 680 (Div. 2)
Codeforces Round #680 (Div. 2) 传送门 A. Array Rearrangment 数学 题意 给定 \(A,B\) 数组和一个数 \(x\), 将 \(A\) 数组和 \(B\) 数组匹配,使得 \(A_i + B_i \le x\) 分析 \(A\) 的最大值 \(A_{max}\) 必须要找一个 \(B\) 数组的元素匹配。那么如果最小的 \(B_{min}\) 都无法满足,那么无解。否则存在解。 考虑假如存在一个解,那么它是不是一定也存在 \(A_{max}\) 与 \(B_{min}\) 匹配的解. 如果有一个满足的解 \(A_{max}\) 和 \(B_i\) 匹配,\(B_{min}\) 和 \(A_j\) 匹配. 那么 \(A_{max}+ B_i \le x\) 且 \(B_{min} + A_j \le x\) 其不是最大值与最小值匹配的情况. 那么交换 \(B_{min}\) 与 \(B_{i}\) . 可以证明 \(A_{max} + B_{min} \le A_{max} + B_i \le x\) 并且 \(B_{i}...