JavaScript学习记录0x2
4.1 对象构造对象的方法 12let user = new Object(); // “构造函数” 的语法let user = {}; // “字面量” 的语法 文本和属性123456789101112131415let user = { name: "Randolfluo", "Nian lin": 20};alert(user.name);user.country = "China" // 添加属性alert(user.country);delete user.country; // 删除属性alert(user.country); //undefineduser["Nian lin"] = 18; //有空格或者数字开头的属性,需要用中括号 //这里的Nian lin可以由程序运行时计算得出 方括号12345678//因此我们实现返回用户需要的属性值let...
栈溢出攻击原理与防范
栈溢出攻击原理与防范栈溢出(又名stack overflow),指的是程序向栈中某个变量中写入的字节数超过了这个变量本身所申请的字节数,因而导致与其相邻的栈中的变量的值被改变。这种问题是一种特定的缓冲区溢出漏洞,类似的还有堆溢出,bss 段溢出等溢出方式。栈溢出漏洞轻则可以使程序崩溃,重则可以使攻击者控制程序执行流程。 [toc] 为什么栈溢出如此知名 莫里斯蠕虫 莫里斯蠕虫病毒利用了栈溢出漏洞 莫里斯蠕虫(Morris Worm)是在1988年11月2日由罗伯特·泰潘·莫里斯(Robert Tappan Morris)编写的一个计算机蠕虫。导致数千台计算机瘫痪,造成了大量的时间和金钱损失。他也是第一个因计算机犯罪而被判有罪的人。 stack overflow 论坛logo:全球知名的程序员论坛 漏洞发现至今已有35年,缓冲区溢出漏洞仍占比最多: demo什么是栈溢出,请看如下demo: 12345678910#include<stdio.h>int main(){ char s[10]; gets(s); ...
python数据分析0x1
为科学计算和数据科学设计的Python发行版:Canopy和Anaconda Anaconda 包管理:Conda类似于pip spyder:交互式Python语言开发环境 IPython是一个用于交互式计算的Python工具 a?获得a的信息 %魔术命令(Magic Commands)是特殊的命令,如%run demo.py执行当前目录下的demo.py。 NumPy库入门NumPy是一个开源的Python科学计算基础库,包含: 一个强大的N维数组对象ndarray 广播功能函数 整合C/C++/Fortran代码的工具 线性代数...
动态规划
动态规划递归关系 状态表示f[i,j] 集合:从前i个物品选且体积小于j 属性:最大值,最小代价,数量 状态计算——集合划分 01 背包 每件物品可以用一次 不包含第i个物品:f(i - 1, j) 包含第i个物品:f(i - 1,j - vi) + wi 空余一个vi的位置,加上第i个物品的权重 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include <algorithm>#include <iostream>using namespace std;const int N = 1010;int n, m;int v[N], w[N]; //体积和价值int f[N][N]; //第一个N表示取第1~n个物品,第二个n表示从1开始到m的容量int main() { cin >> n >> m; for (int i = 1; i <= n; i++) ...
洛谷题单——图的基本应用
P5318 【深基18.例3】查找文献 这题是分别进行DFS和BFS遍历,要求有多个节点时,按照从小到大进行排序。由于采用的是yxc的链式前向星存储,涉及到多个数组,不知道该如何在输入后立即进行排序。因此第一次我多次在遍历过程中使用set来进行排序。功能正确但是会超时。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273#include <cstring>#include <iostream>#include <queue>#include <set>using namespace std;const int N = 1e5 + 5;int n, m;int h[N], e[N], ne[N], idx = 0;bool st[N]; // 标记数组void add(int a, int b) { ...
洛谷题单——模拟与高精度
[toc] P1042 [NOIP2003 普及组] 乒乓球 这题我刚开始一直无法理解直到分差大于或者等于 22,才一局结束。后面一想,这不就是加球吗?那么,这题就好解了。 1234567891011121314151617181920212223242526272829303132333435#include <iostream>#include <string>using namespace std;void judge(const string& arr, int n) { int me = 0, em = 0; for (char ch : arr) { if (ch == 'W') me++; else em++; if ((me >= n || em >= n) && abs(me - em) >= 2) { //记得要加abs取绝对值 cout << me...
洛谷题单——字符串
P5733 【深基6.例1】自动修正 123456789101112131415#include <iostream>#include<string>using namespace std;int main(){ string a; getline(cin, a); for (char& tmp : a) { tmp = toupper(tmp); } cout << a;} P1914 小书童——凯撒密码 123456789101112131415161718#include <iostream>#include<string>using namespace std;int main(){ string a; int mv; cin >> mv; cin.ignore(); getline(cin, a); for (char& tmp : a) { tmp =(tmp - 'a' + mv)%26 +...
TinyWebServer epoll&&webserver
epoll&&webserverepollI/O多路复用I/O多路复用(I/O Multiplexing)是一种允许单个线程或进程同时监视多个文件描述符(通常是网络套接字)的可读、可写和异常等事件的技术。 IO多路复用——深入浅出理解select、poll、epoll的实现 - 知乎 (zhihu.com) 当然,我们在这里使用的是最现代,最高效的epoll系统调用。 在Linux系统中,当需要处理多个文件描述符时,epoll可以用来监控这些文件描述符的读写事件。当至少一个文件描述符准备好进行I/O操作时,epoll会通知应用程序,从而允许程序执行非阻塞的I/O操作。 12345678910111213141516171819202122/* * epoll_data_t 是一个联合体,用于存储 epoll_event 结构体中的用户数据。 * 它可以存储指针 ptr、文件描述符 fd、32位整数 u32 或 64位整数 u64。 */typedef union epoll_data{ void *ptr; /* 指针类型...
TinyWebServer http
httphttp报文结构我们可以通过burpsuite来抓取http请求,然后根据请求编写处理程序。 这是申请登录的请求 12345678910111213141516171819POST /login HTTP/1.1 //请求行/* 请求头部Host: localhost:1316User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateContent-Type:...
TinyWebServer HeapTimer
heap8.1 堆 - Hello 算法 (hello-algo.com) 这里使用小根堆来实现计时器。 时间堆通常用于优先队列(priority queue)的实现,其中每个元素都包含一个时间戳,并且堆的根节点总是具有最小时间戳的元素。 当剩余时间耗尽时,执行任务。 heaptimer.h12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667#ifndef HEAP_TIMER_H#define HEAP_TIMER_H#include <cstddef>#include <queue>#include <unordered_map>#include <algorithm>#include <chrono>#include <functional>#include <arpa/inet.h>...