自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 图的m着色问题

1.问题    给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。2.解析算法思路:t=1->n 对当前第t个顶点开始着色:if: t>n 则已求得一个解,输出着色方案即可else:依次对顶点t着色(1-m)if:t与所有其它相邻顶点无颜色冲突,则继续为下一顶点着色;其中判断标准为:同相邻节点所有节点的颜色比较,如果有该节点且颜色有重复,都不符合要求,否则继续检

2021-06-21 15:26:07 163

原创 最优前缀码问题

1.问题  给定字符集C={X1,X2,……,Xn}和每个字符的频率或者说权重f(xi),求关于 C 的一个最优前缀码。2.解析  构造最优前缀码的贪心算法就是哈夫曼算法(Huffman)  构造哈夫曼二叉树的步骤主要为:为每个符号建立一个叶子节点,并加上其相应的发生频率当有一个以上的节点存在时,进行下列循环:把这些节点作为带权值的二叉树的根节点,左右子树为空选择两棵根结点权值最小的树作为左右子树构造一棵新的二叉树,且至新的二叉树的根结点的权值为其左右子树上根结点的权值之和。把权值最小

2021-06-20 10:53:46 577

原创 装载问题(01背包)

1.问题  求解装载问题(01背包):给定 n 个 w i 的集装箱和有最大装载量C 的轮船,问最多能装几个集装箱?2.解析  01背包问题和完全背包问题其实是差不多的,主要就是一个资源可以无限选,一个只能选择一次的问题,核心还是选与不选的问题,同时考虑选和不选之间的最大利益。主要思想可以参考之前的博客。  链接:https://blog.csdn.net/Theseus_sky/article/details/116947491?spm=1001.2014.3001.5502  链接:http

2021-06-19 22:35:13 297

原创 LCS算法&完全背包问题

1.问题  求解动态规划中关于最长公共子序列LCS问题、完全背包问题.2.解析最长公共子序列LCS问题:示例:假设X=ABCBDAB Y=BDCABA(1) i=1  A.J=1 X.A <> Y.B C[1,1]=MAX(C[1,0],C[0,1])=MAX(0,0)=0  B.J=2 X.A <> Y.D C[1,2]=MAX(C[1,1],C[0,2])=MAX(0,0)=0  C.J=3 X.A <> Y.C C[1,3]=MAX(C[1,2]

2021-06-02 00:05:13 213 3

原创 矩阵链乘问题--动态规划

1.问题  设A1,A2,…,An为 n 个矩阵的序列,其中Ai为Pi-1*Pi阶矩阵,这个矩阵链的输入用向量P=<P0,P1,…,Pn>给出。  给定向量 P,确定一种乘法次序,使得基本运算的总次数达到最小。2.解析示例:3.设计#include <iostream>#include <cmath>#include <iomanip>#include <string.h>#include <stdio.h>#

2021-05-24 20:29:59 193

原创 动态规划解决投资问题

1.问题设m万元钱,n项投资,函数fi(x)表示将x万元投入第i项项目所产生的效益,i=1,2,…, n.问:如何分配这m元钱,使得投资的总效益最高?2.解析xF1[x]F2[x]F3[x]F4[x]000001111111202121213313131630334142141505152643613.设计#include <iostream>#include <cma

2021-05-17 20:32:05 385

原创 特定分治策略选取第k小元素

1.问题在数组中,选取第k个小的元素,采用特定分治策略。2.解析3.设计int select(int a[], int l, int r, int k){int group, i, left, right, mid;int pivot, p, lnum;//规模小直接排序返回if (r - l + 1 <= 5){insertsort(a, l, r);return a[l + k - 1];}//分组规模group = (r - l + 1 + 5) / 5;//遍

2021-05-17 16:20:43 85

原创 平面最近点对算法

1.问题给定平面上n个点,找出其中的一对点的距离,使得在这n个点的所有点对中,该距离为所有点对中最小的。2.解析分治法的一般步骤Step1:Devide——将要解决的问题划分成若干规模较小的同类问题Step2:Conquer——当子问题划分得足够小时,用较简单的方法解决 (递归)Step3:Combine——将子问题的解逐层合并构成原问题的解  以中间点为划分线的最近点对的距离有三种情况,一种是都在左边点集存在最短距离,一种是都在右边点集存在最短距离,最后一种则是一个点在左边点集一个点在右

2021-04-25 18:32:39 3092 3

原创 二分归并排序算法

1.问题  二分归并排序:对n个不同的数构成的数组A[1…n]进行排序,其中n=2^k2.解析二分归并排序算法算法步骤如下:  (1) 分解:分解待排序的n个元素的数组成各具n/2个元素的两个子数组。  (2) 解决:使用归并排序递归地排序两个子序列。  (3) 合并:合并两个已排序的子序列以产生排序的答案。如图所示:3.设计void Merge(int a[],int start,int mid,int end){ int i=start,j=mid+1,k=start;

2021-04-19 15:09:23 177

原创 检索算法

1.问题  在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0。2.解析  主要有两种比较简单的算法实现:顺序查找算法和二分查找算法。  1.顺序查找算法:顾名思义,根据数值,一个个在有序数组中查找数据,找到即输出,利用for循环遍历即可。  2.二分查找算法:与日常应用有关,当给你一个有序区间时,一般都是从最中间的数开始猜起,不断地寻找合适的区间,大了就在大的区间继续二分,小了就在小区间继续二分,效率会比顺序查找高得多。3.设计1.顺序查找

2021-03-22 21:34:27 573

原创 用Floyd算法和Dijkstra算法解决最短路径问题

1.问题求解图中一个节点到其他所有节点的权值最短的路径即最短路径。包括单源最短路径问题——从某固定源点出发,求其到所有其他顶点的最短路径以及多源最短路径问题——求任意两顶点间的最短路径。2.解析最短路径问题可以分为两类,单源最短路径问题——从某固定源点出发,求其到所有其他顶点的最短路径以及多源最短路径问题——求任意两顶点间的最短路径。解决其问题有多种算法,今天介绍两种算法,floyd算法适用于多源最短路径问题,dijkstra算法适用于单源最短路径问题。Floyd算法:Dijkstra算法:

2021-03-22 21:30:04 380

原创 从简单的JS小游戏中看JS代码审计的一般流程

  首先是最近的一次比赛[VNCTF 2021]Ez_game。  题目目标很明确,通关即可获取flag。页面游戏都是由JS文件写的,这就涉及JS审计的问题。  一般第一步就是打开调试器查看当前的JS文件来审计,比如ctrl+F在文件中搜索关键字。  常见关键字有:alert(一般通关是以弹窗框显示)、flag(比赛常见的头)、比赛常见的flag头(比如V&Nctf中的VN)、{、}、win(通关的标志、同类的比如pass、end、level)、player、play(游戏者的一些数据)  

2021-03-22 19:31:50 1296

原创 最小生成树的两种算法实现

1.问题如何求一个包含有原图所有n个结点的且所有边的代价和最小的极小连通子图。2.解析构造最小生成树有两种算法模式。第一种是Kruskal算法。它的要点就是选边。即从最短的边开始生成森林,最后连成树。简单的步骤:1.图中的所有边按权重从小到大排序;2.图中的n个顶点看成独立的n棵树组成的森林;3.按权重从小到大选择边,所选的边连接的两个顶点应属于两颗不同的树,则成为最小生成树的一条边,并将这两颗树合并作为一颗树。4.重复3,直到所有顶点都在一颗树内或者有n-1条边为止。以下面为例。所有

2021-03-15 00:12:58 10056 1

原创 Java课程作业-【接口】

Java课程作业-【接口】一.抽象类和方法在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类和普通类的主要有三点区别:1)抽象方法必须为 public 或者 protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),默认情况下默认为 public。2)抽象类不能用来创建对象;3)如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子

2020-12-01 18:11:54 433

原创 Java课程作业-【浅谈多态】

Java课程作业-【多态】含义多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作。多态性是对象多种表现形式的体现。现实中,比如我们按下 F1 键这个动作:如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;如果当前在 Word下弹出的就是 Word 帮助;在 Windows 下弹出的就是 Windows 帮助和支持。同一个事件发生在不同的对象上会产生不同的结果。多态的优点消除类型之间的耦合关系可替换性可扩充性接口性

2020-11-17 16:34:56 208

原创 Java课程作业-【Java中的正则表达式】

Java课程作业-【Java中的正则表达式】正则表达式关于正则表达式,许多语言中都有涉及,这边简单罗列一些语法,权当复习。代码说明.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意的空白符\d匹配数字\b匹配单词的开始或结束^匹配字符串的开始$匹配字符串的结束**以上是一些简单常用的元字符,下面介绍一些匹配重复方式的常用限定符代码说明*重复零次或更多次+重复一次或更多次

2020-10-20 16:16:26 157

原创 Java课程作业-【IDEA创建项目-Helloworld+上传Github】

IDEA创建项目IDEA是使用教育优惠下载的,建议大学生都可以用学校邮箱去注册一个,正版免费不香吗?至于教程,搜索一下,百度在手,一切我有。开始正题。打开新建,选择项目NextNext,可以更换一个名称Next,在src界面右键新建java文件,编译生成class文件(注意class后面名称需与文件名一致)编译成功输出Welcome to Java!上传github先注册帐号,成功之后新建一个库,给他一个名字,即可创建成功。之后可以通过各种方式上传你的代码或者文件。在Reposit

2020-09-25 09:31:42 187

原创 BUUOJweb刷题wp(三)

强网杯2019随便注堆叠注入原理在SQL中,分号(;)是用来表示一条sql语句的结束。试想一下我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。而union injection(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?区别就在于union 或者union all执行的语句类型是有限的,可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。例如以下这个例子。用户输入:1; DELETE FROM products服务器端生成的sql语

2020-09-15 16:20:16 529

原创 BUUOJ-web刷题wp(二)

特辑篇-极客大挑战2019[极客大挑战 2019]EasySQL万能密码如下:直接登录显示flag[极客大挑战 2019]HavefunF12看一下,发现那串注释,尝试get数据?cat=dogy1s1,这猫还是很可爱的,下面的有道题也是!!玩了半天哈哈哈[极客大挑战 2019]Secret File查看源代码,发现Archive.room.php,打开看看按一下按钮可能是跳转太快了,抓一下包。发现提示,进入又现提示flag.php,进入看看网页源代码看不见,猜测是写

2020-07-16 16:33:42 677

原创 BUUOJweb刷题wp(一)

[HCTF 2018]WarmUp(php&代码审计)打开source.php康康源代码:有注释的是从其他wp上面看来的<?php highlight_file(__FILE__); class emmm { public static function checkFile(&$page) /* 传入了变量page,也就是我们刚刚传进来的file */ { // 这里定义了白名单

2020-07-16 10:53:10 823

原创 攻防世界web新手题第一次归纳总结

攻防世界web新手题第一次归纳总结view_source这里用到一个查看网页源代码的方式,F12查看器查看网页源代码方式:1.F12,打开查看器2.鼠标右键查看robots题目描述:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。根据题目描述应该和robots协议有关,直接打开robots.txt发现:User-agent: *Disallow:Disallow: f1ag_1s_h3re.php所以根据提示打开f1ag_1s_h3

2020-05-24 12:58:12 601

原创 BJD 2nd ctf大赛萌新wp

BJD 2nd ctf大赛萌新wp太打击人了,果然就是个萌新!!crypto签到题“ QkpEe1czbGMwbWVfVDBfQkpEQ1RGfQ== ”显然base64解码老文盲了“罼雧締眔擴灝淛匶襫黼瀬鎶軄鶛驕鳓哵眔鞹鰝”萌新初体验,这道题丧心病狂,把前面几个生僻字拼音找了出来,发现刚好首字母是BJD,后三个发现是大括号的谐音,结尾三个也是如此,可得BJD{淛匶襫黼瀬鎶軄鶛驕...

2020-03-22 21:32:27 2043 6

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除