学习笔记
Miracle 007
这个作者很懒,什么都没留下…
展开
-
Python基础之Linux基础入门(Ubuntu)——远程登陆和复制文件
03 远程登陆和复制文件3.1 ssh基础(重点)ssh客户端和ssh服务器,都是软件只有windows木有默认安装Ubuntu是已经安装好的红字是ssh的优点实战:Host name是主机地址3.2 scp命令-P的P是大写的,与上面的SSH的-p区分scp -P + 源文件+目标文件...原创 2022-04-14 21:10:50 · 1364 阅读 · 0 评论 -
Python基础之Linux基础入门(Ubuntu)——远程管理常用命令
01 关机/重启02 查看或配置网卡信息2.1 网卡和IP地址本地环回地址,是专门用来测试网卡能否正常工作的。inet是IPV4的地址inet6是IPV6的地址2.2 ifconfig2.3 Pingctrl + c 停止ping的命令并且显示以上信息,如发送了多少个数据包,每个数据包的最小时间,平均时间,最大时间等等每次发56字节,回64字节,time是表示一个来回需要的时间,时间越小网速越快...原创 2022-04-11 20:41:57 · 975 阅读 · 0 评论 -
Python基础之Linux基础入门(Ubuntu)——其他命令
ctrl+F搜索文本行首模式查找行尾模式查找06其他6.1 echo文字内容echo一般和重定向一起使用注意touch和echo的区别6.2 重定向>和>>将本应该在终端中输出的内容输出到指定的文件中,>表示输出,>>表示追加>符号会直接覆盖掉文件里本来就有的内容。>>则只是追加到文件后面,而不是覆盖它。6.3 管道要使用管道则至少需要两个命令。把一个命令的输出通过管道作为另一个命令的输入。eg.会出来很多东西.原创 2022-04-11 19:39:57 · 1505 阅读 · 0 评论 -
Python基础之Linux基础入门(Ubuntu)
1.4 通配符的使用通配符字符组02 切换目录2.1 cd命令常用参数cd -:只能在最近的两次工作间来回切换!!2.2 相对路径和绝对路径绝对路径:开头都是以/(根目录开头的)相对路径:相对于当前位置而言的为止03创建和删除操作mkdir -p 递归创建文件夹Linux中同一目录下无论是文件还是目录都不可以同名。rm直接将文件从磁盘中删除,不会被放到垃圾桶中。rm不能直接删除文件夹,要加上-r,而加上-r之后则会直接递归删除文件夹及其所有子目录。rm -f强制删原创 2022-04-03 15:45:30 · 2469 阅读 · 0 评论 -
Python基础之Linux基础入门(Ubuntu)——常用Linux命令的基本使用及Linux终端命令使用格式
一、常用Linux命令的基本使用放大和缩小快捷键:放大:ctrl + +号即ctrl + shift + =缩小:ctrl + -号二、Linux终端命令使用格式01终端命令格式02 查阅命令帮助信息help 、maneg.help:man:man的其他操作...原创 2022-03-27 10:24:28 · 1532 阅读 · 0 评论 -
Python基础之Linux基础入门(Ubuntu)前置基础知识
1.2不同应用领域的主流操作系统Windows 安全性和稳定性不太好嵌入式一般用于开发智能家居智能机器人等1.3虚拟机限制unix的使用,完全私有化2.Linux内核及发行版2.1 linux文件目录linux无盘符概念,所有文件都是存在根目录(/)里面的2.4 Linux主要目录速查表2.5 Ubuntu图形界面的基本使用光标挪动到最上面的灰色的条上的时候就可以显示菜单栏了。...原创 2022-03-26 20:58:32 · 2456 阅读 · 0 评论 -
古典密码学简介
一、关键词加密二、仿射加密原创 2021-11-17 21:01:51 · 184 阅读 · 0 评论 -
C4D-1.基础知识
Alt+鼠标左键,可以旋转。Alt+滚轮:移动视窗。Alt+右键/鼠标滚轮:缩放创建->参数对象 里面可以创建球体,圆盘等实时选择:快捷键是9,划过的地方都是被选择的地方按【】可以放大或缩小笔触的大小。和shift键一起可以多选。和ctrl一起可以减选。或者直接拖这里:框选:快捷键是0;T单体缩放,R单体旋转直接拖可以改变层级关系,假设A成B的附属关系之后,A转动B也会跟着转动。打包思想:空白“文件夹”这个可以改变物体的大小等参数全都是点线面组成,无真正光滑的曲面。但是参原创 2021-11-05 20:07:43 · 1093 阅读 · 0 评论 -
misc2-数据编码
常见进制进制转换cyberchef(一个好的整合工具)1.二进制转ASCII码2->10->ASCII2.二进制转morse码2->10->ASCII3.二进制转二维码(绘图)1是一个黑点,0是一个白点,跑出来就是一个二维码的形状4.二进制转16进制然后转成图片(hex)可以用在线转换网站,如果觉得太卡了就可以用它转换网站下面给的脚本自己跑一下。二进制转万物……常见编码(eg.ASCII码、base码、敲击码、二维码)1.ASCII码2.Bas原创 2021-10-28 19:29:12 · 1314 阅读 · 0 评论 -
misc1-图片隐写
Misc:杂项一、分类1.数据编码/图形密码2.图片隐写3.音频&视频隐写4.流量分析5.内存取证6.游戏隐写(打通关获得一个flag)二、基础知识1.010editor(alt+4打开模板,alt+f4关闭,模板需要自己安装)插入和覆盖有模板库,f5模板提供宽和高等的信息2.图片十六进制文件头+文件模板3.文件属性(exiftools)4.kali三、图片隐写分类1.右击属性属性里藏东西2.文件末尾藏有字符串(2)文件十六进制藏有字符串strings查找可原创 2021-10-21 18:27:59 · 2097 阅读 · 0 评论 -
2021.7.21学习笔记
1005upper_bound函数:看大佬的精讲rep函数虽然完全看不懂但是还是决定先保存个链接uniform_int_distribution虽然也不怎么懂default_random_engineemmm不大明白的样子多放几个吧还是这个感觉最靠谱srand函数看百度百科好的大佬这道题的代码差不多就这几个不明白的了!...原创 2021-07-21 21:26:03 · 89 阅读 · 0 评论 -
2021-5-03学+补题
Manacher算法A - Easy hhh-index主要是读题的问题,看不懂题目=不会写。题目比较难懂。题意:输入一行数a0,a1,a2……an。表示索引为0的文章有a0篇,为1的文章有a1篇……。要求最大的h(索引次数),使得h >= a[h]。至少有h篇不少于a[h]#include <iostream>using namespace std;#define ll long longint main(){ int n; ll a[200000+5]; whi原创 2021-05-03 19:00:59 · 173 阅读 · 0 评论 -
动态规划的递归写法和递推写法
动态规划是一种非常精妙的算法思想,它没有固定的写法、及其灵活,常常需要具体问题具体分析。11.1.1什么是动态规划动态规划是一种用来解决一类最优化问题的算法思想。简单来说就是将一个复杂的问题分解成若干个子问题,通过综合子问题的最优解来得到原问题的最优解。DP会将每个求解过的子问题的解记录下来,这有当下一次碰到同样的子问题时,就可以直接使用之前的记录结果,提高了计算效率。一般可以使用递归或者递推的写法来实现动态规划,其中递归写法又称记忆化搜索。11.1.2动态规划的递归写法理解如何记录子问题的解,来原创 2021-05-01 18:51:13 · 433 阅读 · 0 评论 -
第2节——再谈最小生成树(Prim算法)
算法流程如果说上个算法基于点,那这个Prim算法就是基于边的。算法流程大致如下:1.从任意一个人顶点开始构造生成树,假设从1号顶点开始。首先将1号顶点加入生成树中,用一个一维数组book来标记那些顶点已经加入了生成树。2.用数组dis记录生成树到各个顶点的距离。最初生成树中只有1号顶点,有直连边时,数组dis中存储的就是1号顶点到该顶点的边的权值,没有直连边时就是无穷大,即inf。3.从数组dis中选出离生成树最近的顶点(假设这个顶点为j)加入到生成树中(即在数组dis中找最小值)。再以j为中间点原创 2021-04-25 21:52:01 · 246 阅读 · 0 评论 -
第一节 镖局运镖——图的最小生成树(Kruskal算法)
镖局每到一个新地方开展业务,都需要对运镖途中的绿林好汉进行打点。好说话的打点费就比较低,不好说话的打点费就比较高。现在已知城镇地图如下,顶点是城镇编号,边上的值表示这条道路上打点绿林好汉需要的银子数。数据给出如下:6 92 4 113 5 134 6 35 6 42 3 64 5 71 2 13 4 91 3 2第一行有两个数n和m,n表示有n个城市,m表示有m条道路。接下来的m行,每行形如“a b c”用来表示一条道路,意思是城市a到城市b需要花费的银子数是e。镖局现在需要选原创 2021-04-23 21:38:48 · 399 阅读 · 0 评论 -
字符串逆序输出的三种方法
字符串逆序法一:利用反向迭代器reverse_iterator:rbegin()和rend():c.begin() 返回一个迭代器,它指向容器c的第一个元素c.end() 返回一个迭代器,它指向容器c的最后一个元素的下一个位置c.rbegin() 返回一个逆序迭代器,它指向容器c的最后一个元素c.rend() 返回一个逆序迭代器,它指向容器c的第一个元素前面的位置string str1("1234567890");string str2(str1.rbegin(), str1.rend());原创 2021-04-13 18:04:24 · 9374 阅读 · 1 评论 -
2021-04-09学习笔记
左移(<<)和右移(>>)左移: 相当于乘法,左移几位就相当于原来的数成2的几次方。二进制形式左移一位,多出来的一位补0。eg. 1 << 5 = 1 * 25 = 32右移: 相当于除法,右移几位就相当于除以2的几次方。二进制形式右移一位,就相当于把最右边的一位数顶掉。1)逻辑右移不管是什么类型,空缺自动补0;2)算数右移若是无符号数,则空缺补0,若是负数,空缺补1;eg. 16 >> 3 = 16 / 23 = 2该部分参考文章为:原创 2021-04-09 21:41:29 · 134 阅读 · 0 评论 -
博弈例题
巴什博弈尼姆博弈威佐夫博弈公平组合博弈eg.1 hdu2147AC代码:#include <bits/stdc++.h>using namespace std;int n, m;int main(){ while(cin >> n >> m){ if(n == 0 && m == 0) break; if(n % 2 == 0 || m % 2 == 0) cout << "Wonderful!" <<原创 2021-03-08 21:52:06 · 184 阅读 · 0 评论 -
map容器的使用
例题:eg1:http://acm.hdu.edu.cn/showproblem.php?pid=1004AC代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e3 + 7;map<string, int> ballon;string color, maxcolor;int n, mmax;int main(){ while(cin >&原创 2021-03-02 11:13:41 · 120 阅读 · 0 评论 -
链表
建立动态链表:#include <bits/stdc++.h> using namespace std;typedef long long ll;int n;struct student{ ll num;};int main(){ struct student *head, *p, *q, *t; ll a; cin >> n;//一共n个学生 head = NULL; for (int i = 1; i <= n; ++i){ cin &g原创 2021-02-26 15:22:50 · 94 阅读 · 0 评论 -
01背包例题集
eg.1原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602直接是裸的模板AC代码:#include <bits/stdc++.h>using namespace std;const int N = 1e3 + 7;int t, n, v, f[N], va[N], vo[N];//v是他背包的体积 int main(){ cin >> t; while(t--){ cin >原创 2021-02-24 15:15:38 · 172 阅读 · 0 评论 -
搜索
BFSeg.1原题链接:https://ac.nowcoder.com/acm/contest/9986/IAC代码:#include<bits/stdc++.h>using namespace std;const int N = 1000;struct node{ int x; int y; int step;}s,g,Node;int n,m,flag;char mp[N][N];int vis[N][N];int X[5]={0, 0, 1, -1};原创 2021-02-24 15:11:39 · 2769 阅读 · 0 评论 -
寒假比赛第二层个人赛赛后总结
A - Different Divisors思路:1.数论简单题,用到了素数筛(或者线性筛)2.我们观察样例,1肯定是选择的,最后一个因子肯定是a本身,然后中间两个是a的因子,我们可以发现,最好的情况这两个因子相乘等于a,这样才会使得a最小,为了保证因子之间的差值确定,那么这两个因子应该为素数3.确定了这些,我们只需要从小到大枚举两个素数,乘积就是aAC代码:#include <bits/stdc++.h>using namespace std;#define MAX_NUM 4原创 2021-02-23 22:17:28 · 166 阅读 · 0 评论 -
拓扑排序
讲得好的网址:https://www.luogu.com.cn/blog/80049/kuai-su-ru-shou-ta-pu-pai-xu原创 2021-02-23 10:33:04 · 121 阅读 · 0 评论 -
寒假第一场个人赛题解
A - XORwice原题链接:https://codeforces.com/problemset/problem/1421/A两个一样的数异或等于0.找规律,根据样例显然可知x = a或者x = b的时候有最小值。AC代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;int t;ll a, b, ans, x;int main(){ cin >> t; while(t-原创 2021-02-22 15:34:24 · 150 阅读 · 0 评论 -
并查集(擒贼先擒王)
靠左原则:左边的是团伙的头头擒贼先擒王原则:让团伙之间的大BOSS自己决定谁归顺谁。并查集算法:并查集通过一个数组来实现,其本质是维护一个森林。刚开始的时候,森林的每个点是孤立的,也可以理解为每个点就是一棵只有一个结点的树,之后通过一些条件,逐渐将这些树合并成一棵大树。其实合并的过程就是每次判断两个结点是否已经在同一棵树中的时候...原创 2021-02-20 21:23:24 · 175 阅读 · 0 评论 -
堆——神奇的优先队列
堆就是一种特殊的完全二叉树。有没有发现这棵二叉树有什么特点?就是所有的父结点都比子结点要小(注意:圆圈里面的数是值,圆圈上面的数是这个结点的编号)。符合这样特点的完全二叉树我们称为最小堆。反之,如果所有的父结点都比子结点要大,这样的完全二叉树称为最大堆。假如有14个数,分别是99、5、36、7、22、17、46、12、2、19、25、28、1和92 。现在我们需要删去其中的最小数并且增加一个23,再求这14个数中的最小数。首先我们把这14个数按照最小堆的要求(就是所有的父结点都比子结点要小)放入一棵原创 2021-02-18 18:53:42 · 277 阅读 · 0 评论 -
模拟大数加法
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1002分析:列竖式!代码:#include <bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3ftypedef long long ll;const int N = 1e3 + 7;#define jiechufengyin std::ios::sync_with_stdio(0);cin.tie(0);cout.tie(0原创 2021-02-09 16:22:42 · 126 阅读 · 0 评论 -
最短路径算法对比分析
我们选择最短路径算法时,要根据实际需求和每一种算法的特性,选择合适的算法。Floyd算法虽然总体时间复杂度高,但是可以处理带有负权边的图(但不能含有负权回路)并且均摊到每一点的对上,在所有的算法中还是属于较优的。另外Floyd算法较小的编码复杂度也是它的一大优势。所以,如果要求的是所有点对间的最短路径,或者数据范围较小,则Floyd算法比较适合。Dijkstra算法最大的弊端是它无法处理带有负权边已经负权回路的图,但是Dijkstra算法具有良好的课扩展性,扩展后可以适应很多问题。另外用堆优化的Dij.原创 2021-02-09 12:56:27 · 687 阅读 · 0 评论 -
Bellman-Ford算法的队列优化
算法优化核心思维:每次仅对发生变化了的点的相邻边执行松弛操作。但是如何知道当前哪些点的最短路径发生了变化呢?这里可以用一个队列来维护这些点,算法大致如下:每次选取队首顶点u,对顶点u的所有边进行松弛操作。例如有一条u->v的边,如果通过u->v这条边使得源点到顶点v的最短路程变短(dis[u] + e[u][v] < dis[v]),且顶点v不在当前的队列中,我们就将顶点v放入队尾。需要注意的是,同一个顶点同时在队列中出现多次是毫无意义的,所以我们需要一个数组来判重(判断哪些点已经在队原创 2021-02-09 12:31:23 · 484 阅读 · 1 评论 -
Bellman-Ford算法(解决负权边)
核心代码:for (int k = 1; k <= n - 1; ++k){ for (int i = 1; i <= m; ++i){ if(dis[v[i]] > dis[u[i]] + w[i]) dis[v[i]] = dis[u[i]] + w[i]; }} 上面的代码外层循环一共循环了n - 1次(n为顶点个数), 内层循环循环了m次(m为每一条边),即枚举每一条边。dis数组的作用与Dijkstra算法一样,是用来记录源点到其余各个顶点的最短路径的。u、原创 2021-02-09 10:07:31 · 707 阅读 · 1 评论 -
abs、fabc、acos、double输入输出
abs和fabs函数区别abs():求绝对值函数fabs():求绝对值函数abs( )主要用于对求整数的绝对值,在“stdlib.h”(或 )头文件里面。而fabs( )主要是求精度要求更高的double ,float 型的绝对值,在头文件里。两者在只#include时都可以使用...原创 2021-02-06 14:11:10 · 793 阅读 · 0 评论 -
唯一分解定理
模板:1.去重过的:typedef long long ll;ll fac[10050], num;//素因数,素因数的个数void init(ll n) {//唯一分解定理 num = 0; ll cpy = n; int m = (int)sqrt(n + 0.5); for (int i = 2; i <= m; ++i) { if (cpy % i == 0) { fac[num++] = i;原创 2021-02-04 19:36:11 · 133 阅读 · 0 评论 -
gcd(概念+例题)
模板:例题:例题1:https://sdnuoj.rainng.com/problem/show/1354代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define inf 0x3f3f3f3fconst int N = 100 + 7;const int M = 1e6 + 7;ll n, longcable[N], num;ll gcd(ll a, ll b){ retur原创 2021-02-04 16:06:28 · 256 阅读 · 0 评论 -
模拟
模拟大数乘法:例题:https://sdnuoj.rainng.com/problem/show/1232分析:由乘法竖式得到灵感代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define inf 0x3f3f3f3fconst int N = 1e3 + 7;const int M = 1e6 + 7;string sa, sb;int a[N], b[N];int sum[M原创 2021-02-04 10:40:25 · 142 阅读 · 0 评论 -
打表(例题 + 概念)
打表:打表,是一个信息学专用术语,意指对一些题目,通过打表技巧获得一个有序表或常量表,来执行程序某一部分,优化时间复杂度。这种算法也可用于在对某种题目没有最优解法时,用来得到分数的一种策略。...原创 2021-02-03 19:28:10 · 1979 阅读 · 0 评论 -
判断一个数是否是素数
哥德巴赫猜想**内容:**任一大于2的整数都可写成三个质数之和判断是否是素数法一:首先看一个关于质数分布的规律:大于等于5的质数一定和6的倍数相邻。例如5和7,11和13,17和19等等;证明:令x≥1,将大于等于5的自然数表示如下:······ 6x-1,6x,6x+1,6x+2,6x+3,6x+4,6x+5,6(x+1),6(x+1)+1 ······可以看到,不在6的倍数两侧,即6x两侧的数为6x+2,6x+3,6x+4,由于2(3x+1),3(2x+1),2(3x+2),所以它们一定不原创 2021-02-02 13:49:43 · 321 阅读 · 0 评论 -
快速幂(例题+模板)
模板1://来自lra师哥 typedef long long ll;ll q_pow(ll a, ll b){ ll ans = 1; while(b > 0){ if(b & 1){ ans = ans * a % mod; } a = a * a % mod; b >>= 1; } return ans;} 例题1:https://sdnuoj.rainng.com/problem/show/1081代码:#include <原创 2021-01-30 10:09:44 · 319 阅读 · 0 评论 -
Dijkstra算法(单源最短路)
1.储存这里仍用一个二维数组来储存顶点之间边的关系。除此之外,我们还需要一个dis数组来储存1号顶点到其余各个顶点的初始路程。如:dis = {0,1,12,inf,inf,inf}(这里inf是无穷大)我们将此时dis数组中的值称为最短路径的“估计值”(没有计算过最短路径之前1号顶点到其余各点之间的路程)。2.松弛既然是计算1号顶点到其余各点之间的最短路程,那就先找一个离1号顶点最近的顶点。通过数组可知离1号顶点最近的顶点是2号顶点。接下来看2号顶点有哪些出边呢?有2->3和2->4原创 2021-01-29 20:46:42 · 323 阅读 · 0 评论 -
Floyd-Warshall算法(多源最短路径问题)
1.用一个二维数组存储图的信息。如:map[1][2] = 2,表示1号城市 到2号城市的路程是2。注意:1.两个城市之间如果没有路,则设两个城市之间的路程为无穷大(inf)2.一个城市到自己的路程是0.如:map[1][1] = 0.3.这些公路是单向的2.思想:根据以往的经验,如果要让任意两个点(例如从顶点a到顶点b)之间的路程变短,只能引入第三个点(顶点k),并通过这个顶点k中转,即:a->k->b,才可能缩短原来从顶点a到顶点b的路程。那么这个中转顶点k是1~n中的哪一个呢原创 2021-01-29 11:32:43 · 371 阅读 · 0 评论
分享