【Algorithm-BackTracking】回溯法
批处理作业调度
来源:https://www.xin3721.com/Articlenet/3096.html
问题描述
给定n个作业的集合J=(J1,J2,… ,Jn)。每一个作业Ji都有两项任务分别在2台机器上完成。每个作业必须先有机器1处理,然后再由机器2处理。作业Ji需要机器j的处理时间为tji。对于一个确定的作业调度,设Fji是作业i在机器j上完成处理时间。则所有作业在机器2上完成处理时间和f=F2i,称为该作业调度的完成时间和。
简单描述
对于给定的n个作业,指定最佳作业调度方案,使其完成时间和达到最小。
举例说明
tji
机器1
机器2
作业1
2
1
作业2
3
1
作业3
2
3
这3个作业的调度方案共有6种(即3个作业的全排列),分别是123,132,213,231,312,321,它们所相应的完成时间和分别是19,18,20,21,19,19。显而易见,最佳调度方案是132,其完成时间和为18。
算法设计
从n个作业中找出有最小完成时间和的作业调度,所以批处理作业调度问题的解空间是一棵排列树。按照回溯法搜索排列树的算法框架,设开始 ...
【Algorithm-Gready】贪心算法
最小跳数
题目
给定一个非负整数数组,初始情况位于数组的第一个索引处。数组中的每个元素表示该位置的最大跳跃长度。要求达到最后一个索引花费的最小跳跃次数。
输入
2 3 1 1 4
输出
2
思路
情况1:可以从出发点,一次走到终点,也就是说 当前点的能跳数>当前点到终点距离
情况2:不能一次走到
如果不能一次走到,有以下操作:
假设从当前位置的 后一个候选点 出发,就是最优解
记录这个最优解位置为bestPointLoc,记录最优解的能跳数为theMax
遍历当前位置所有候选点,如果有候选点能走得更远,更新bestPointLoc和theMax
原则:
原则0:从当前点出发,优先选择候选点中能跳数更大的点
如输入3 5 1 1 4 6……,从3出发,优先选择跳到5
原则1:尽量走更远
如输入3 4 1 4,从3出发,优先选择第二个4
需要同时满足上面两个原则
具体过程:
假设某个候选点位置为i,对应的能跳数为arr[i]
如果arr[i]+i>=theMax+bestPointLoc,说明从bestPointLoc点出发不比从位置为i的 ...
【Algorithm】动态规划
矩阵连乘
代码其实……有点麻烦
详细解读
https://blog.csdn.net/qq_19782019/article/details/94356886
代码
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455// http://www.nbuoj.com/v8.83/Contests/Problem.php?cid=6743&nid=1 #include <iostream> #include <algorithm> using namespace std; //输入矩阵的行列int arr[2333]; //m用来记录计算量int m[2333][2333]={0}; //s用来保存括号位置int s[2333][2333]={0}; //n是矩阵个数int n; int main() { cin ...
【Cryptography】密码学复习
攻击方法
唯密文攻击(Ciphertext Only Attack,COA):仅持有密文。
已知明文攻击:(Known Plaintext Attack,KPA):掌握了一些明密文对。
选择明文攻击(Chosen Plaintext Attack,CPA):截获加密机。
选择密文攻击(Chosen Ciphertext Attack,CCA):截获解密机。
古典密码
大写字母AZ和小写字母az分别对应数字0~25(考试会给出表格)。
重点是置换密码:
单表:加法、乘法、仿射
多表:Playfair、Vigenere
安全性分析(包括抗暴力破解强度,即密钥空间大小)
分组密码
DES
算法过程
计算:S盒
查表,最高位和最低位对应行号,中间位对应列号。
安全性
互补性
弱密钥
双重、三重DES分析(加密的强度:密钥空间)
AES
算法过程(加密/解密)
解密是加密的逆过程。
计算
字节上的计算。
字节代换(S 盒)
简单的查表。
逆:也是查表。
行移位
简单的移位。
第0行不变,第1行左移1个字节,第2行左移2个字节,第3行左移3个字节。
逆:变成右移。
列混合
这应该是 AES ...
【Compiler】-8 中间代码生成
中间代码
语法分析之后,编译的任务是由已识别为正确的源程序生成一组规格一致,便于计算机加工的指令形式。
一、 中间代码生成方法
语法制导翻译,属性文法制导翻译
二、中间代码
中间代码:不是机器语言便于生成机器语言,便于代码优化。
逆波兰式
树形表示
三元式
四元式(最常用)
翻译方法
语法制导翻译
在语法分析的基础上进行边分析边翻译。
注:
语法制导翻译时会根据文法产生式右部符号串的含义,进行翻译,翻译的结果是生成相应中间代码。
语法制导翻译的依据是语义子程序。
具体做法:为每个产生式配置一个语义子程序,当语法分析进行归约或推导时,调用语义子程序,完成一部分翻译任务。
语法制导翻译种类
自上而下语法制导翻译:对每个文法符号配以语义动作
自下而上语法制导翻译:我们主要讨论LR语法制导翻译。
语义子程序
语义子程序写在该产生式后面的花括号内。X→α{语义子程序1}
注:在一个产生式中同一个文法符号可能出现多次,但他们代表的是不同的语义值,要区分可以加上角标。
如:E->E^1^ +E^2^
语义值
为了描述语义动作,需要为每个文法符号赋予不同的语义 ...
【百宝箱】包含多种常用工具
听歌
在线听&下载
HiFiNi(论坛形式,可免费下载)
天天静听
MyFreeMP3
音乐搜索器
spotify
影视
下载
BT之家(片源高清,资源多)
片库
强大的下载资源地
电影天堂
b站下载工具
在线观看
LIBVIO(推荐1)
低端影视(推荐2)
影视在线
在线之家
爱看美剧
speedsoon
爱迪影视
磁力搜索
海盗湾(推荐1)
SkrBT
18+
最全的导航:porndude
私人网盘1:tgbak网盘
私人网盘2:张三网盘
AV1:JAV学习
AV2:netflav
[HongKong Doll 在线](https://fvkn-my.sharepoint.com/personal/vgga_a_1ove_ml/_layouts/15/onedrive.aspx?id=%2Fpersonal%2Fvgga_a_1ove_ml%2FDocuments%2FHongKond Doll&ga=1)
图片1:个人摄影
图片2:摄影网站
论坛:x1080x论坛
torrent下载
游戏
skidrowcodex(第一时间发布各种游戏的破解,免费,种子下载)
...
【Compiler-7】LR分析法
LR分析法
本章介绍上下文无关文法的LR分析方法及分析程序的自动构造。
LR:自左至右扫描,最右推导的逆过程。
基本思想
在规范归约过程中,一方面记住已移进和归约出的整个符号串,另一方面根据所用的产生式推测未来可能碰到的输入符号。
优缺点
优点:与其他技术相比,适应文法范围更广,能力更强,识别效率相当,尤其在自左向右扫描输入串时就能发现其中错误,并能准确指出出错位置。
缺点:
若用手工构造分析程序,工作量太大,且容易出错,所以必须使用自动产生这种分析程序的产生器。
LR分析器
实际上是个有下推栈的确定的有限状态自动机
从逻辑上说,LR分析器包括两部分:
总控程序,或称为语法分析程序
分析表;
注
后面要学习的四种LR分析器的总控程序都相同,仅仅是它们的分析表不同
总控程序
查分析表,根据分析表的内容做若干简单动,如:读头后移,入栈,出栈等。
分析表
四种分析表范围
一个文法的LR分析器常常对应着若干不同分析表所有分析表都恰好识别文法所产生的所有语句。
一共有下列四种分析表
1、LR(0)分析表:
分析能力有限,但这是建立其他LR分析法的基础。
...
【Compiler-6】自上而下分析
自下而上分析法
使用归约法
一共有三种归约法
简单优先分析法
算符优先分析法
LR分析法
思想
自下而上的语法分析过程是一个最左归约的过程,从输入串开始,朝着文法的开始符号进行归约,直到到达文法的开始符号为止的过程。
注意:输入串在这里是指从词法分析器送来的单词符号组成的二元式的有限序列。、
自下而上分析法使用下推自动机
下推自动机PDA
工作方式
自左至右把输入串的符号一个一个移进栈,在移进过程中不断查看栈顶符号串,一旦形成某个句型的句柄时,就将此句柄用相应的产生式左部替换(归约)
若再形成句柄,就继续替换,直到栈顶不再形成句柄为止。
然后继续移进符号,重复上面的过程直到栈顶只剩下文法的开始符号,输入串读完为止,这样就可以认为识别了一个句子。
注:
1)初态时栈内仅有栈底符“#”,读头指在最左边的单词符号上。
语法分析程序执行的动作:
a)移进:读入一个单词并压入栈内,读头后移;
b) 归约:检查栈顶若干个符号能否进行归约,若能,就以产生式左部替代该符号串,同时输出产生式编号;
c) 识别成功:移进一归约的结局是栈内只剩下栈底符号和文法开始符号,读头也 ...
【Compiler】-5 自上而下的语法分析
自上而下的语法分析
1、语法分析的地位
是编译程序的核心部分
2、语法分析的任务
识别由词法分析得出的单词序列是否是给定文法的句子。
3、语法分析的理论基础
上下文无关文法和下推自动机
4、语法分析的方式
自上而下语法分析:从开始符号->符号串。反复使用不同产生式进行推导以谋求与输入符号串相匹配
自下而上语法分析:从符号串->开始符号。对输入符号串,寻找不同产生式进行归约直到文法开始符号。
下推自动机
相对于一个自动机,多出了个下推栈
定义如下
H下推栈内字母表
z0是一个标志,表示栈到底了(栈空状态)
z是栈顶元素
q0是初始状态
q是状态
举例
输入:在q状态下,如果栈顶元素为z,输入符号(读头的符号)为a
使用这个函数
输出:将q变成不同状态q’,并且让栈顶元素z变成r1,r2,r3……
因为这个PDA是不确定的PDA
基本构成
将栈顶元素和读头进行比较,如果相同,就top–,读头++;
如果不相同,就从语法表中找到这个非终结符的产生式,用产生式替换非终结符(栈顶元素)位置,再取栈顶符号
当栈中的开始符号“#”和读头 ...
【Cryptography】ssh的本地端口转发与远程端口转发
原因
下午上密码学,看到讲解ssh端口转发的内容,书中讲的实在太模糊了,于是上网找相关内容自学
本文实现目标
1、ssh本地端口转发讲解
2、ssh远程端口转发讲解与windows上演示
正文
1、ssh本地端口转发
适合的状况
本地主机hostLocal(图中左边)无法访问私网主机hostPrivate(图中右边)
本地主机可以访问云服务器
私网主机可以访问云服务器
云服务器可以访问私网主机(非常重要啊,能和下面的远程端口转发区分开)
云服务器无法访问本地主机
为了实现的目标
让本地主机可以访问私网主机
思路
因为本地主机可以连接到云服务器,那可以借助云服务器,近一步访问到私网主机
整体流程
在本地主机设置一个端口(假如为)2233(目的是,以后本地主机可以通过端口2233访问私网主机)
给目标私网主机设置一个端口(假如为)7788(目的是:可以在此端口运行web服务网页,当然也可以设置为FTP协议对应的21端口)。当然,私网主机也有一个私网ip嘛,假如为52.77.56.16。
先明确一点:云服务器是可以访问到这个私网ip:52.77.56.16,以及对 ...