信息安全
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}...
LaTeX笔记
LaTeX 安装 打开这个网页 image-20201016171058010 安装这个即可 然后安装个 TexMaker 1winget install texmaker 然后可以配置一下,在选项里面配置,可以把编译器改一下来支持中文 image-20201016171147980 LaTeX文档 12345678910111213141516171819202122232425\documentclass{article}\usepackage{ctex}\usepackage{graphicx}\usepackage{booktabs}\usepackage{multirow}\title{Use \LaTeX to make presentation}\author{Fyind}\date{\today}\begin{document} \maketitle \tableofcont...
QT项目学习
QT编程 下载QT http://download.qt.io/official_releases/qt/5.12/5.12.0/ image-20200913175437819 下载那个exe,然后安装好. image-20200913180336560 image-20200913180400705 新建项目 左上角文件-> 新建项目 image-20200913181029681 然后这里用Dialog image-20200913181212608 配置链接 点那个配置链接的图标,然后从slidebar 拖拽到dial组件,就可以生成一个信号 image-20200913181812844 文档 在开始搜索assist,打开assistant MinGW 就可以打开Qt的文档 image-20200913183304138 程序发布 首先设置成release版本 image-20200913183934227 然后构建,打开构建的目录 image-20200913184027503 然后再release文件夹下面...
数据库
引入 如果不使用数据库系统,会有很多问题,如数据的损失,多用户同时访问,安全问题,高昂的开发成本等。 数据库的结构 下面是一个数据库的示意图。最底层的是物理层,数据和数据结构(B树) 就存在这里。然后上面一层逻辑层是比如说放表格这些的位置。然后上面是不同的人相对于数据库不同的视角,因为权限不一样所以可以访问的也不一样 image-20200919100827092 更为具体的是下面这张图 image-20200919104235467 数据建模 类似我们在程序设计的时候要建模,在设计数据库的时候也要对数据建模,对于数据的概念模型有: Entity-Relationship-Modell (ER-Modell) Unified Modeling Language(UML) 逻辑层面的模型有 Relationales Modell 同过关系来建模 比如在大学的范围里,我们可以建立下面的数据模型 image-20200919104540233 下面是对应的数据表 image-20200919104603239 数据库设计 数据库设计的过程 image...