- 博客(247)
- 收藏
- 关注
原创 狐假虎威的树链剖分
最近在做运输计划这道题时,发现要用数链剖分,于是就打算学学这个玩意儿。 其实之前一直以为这个东西是个很复杂的东西,可能代码看起来都很长。 但是,学了之后,我才发现,这个东西很好懂,而且代码之所以很长,也有一个原因就是它需要使用一个强大的数据结构——线段树。线段树的代码其实并不算少,这个,学过的人,都应该知道,没学过的人,不妨看一下:线段树 所以,我称之为狐假虎威。 那么,下面就让我为你们揭...
2018-06-17 21:42:33 374
转载 NOIP考点
NOIP考点基础算法图树数论数据结构动态规划搜索其他算法省选知识点汇总图论数据结构字符串相关算法及数据结构数学计算几何搜索动态规划其他算法转自:巨佬的博客 加*号是选学,加粗为重点,重要值排序不分先后NOIP考点基础算法贪心、枚举、分治、二分、倍增、*构造、高精、模拟、图论图最短路(dijkstra、spfa、f...
2018-03-17 21:34:21 753
原创 guestbook(hackme web部分writeup)
题目链接打开链接可以发现,是一个公告栏,可以自己提交标题和内容,然后会在网页上显示出来。网页源代码肯定啥也没有,抓包也是没有有用的信息,我们考虑flag在服务器的数据库内,所以我们就想到用sql注入。那么数据库的信息会显示在哪儿呢?那就是我们提交的标题内容显示的地方,我们先随便提交一些数据,比如标题为12,内容为34。提交后,查看信息,我们通过网址来进行注入。首先我们有用的一个尝试:https://hackme.inndy.tw/gb/?mod=read&id=-1 union select
2020-10-31 12:16:19 692
原创 hackme的web部分水题writeup集合
简单介绍,hackme是提供ctf基础题的一个很好的网站,网站链接如下:网站链接这次把web部分的头几个没什么值得说的题说一下,因为太短了,单独发一篇博客不值得。hide and seek几乎每个平台都有这道题,直接右击查看源代码即可看到flag。目的就是教会我们查看网页源代码。应平台要求,flag就不提供了。scoreboard网页源代码里是没有的,也没有很多的提示,那么只能说flag在服务器端或者在数据包里,起码不在客户端。scoreboard页面可以和服务器端沟通的只有登录按钮和提交fla
2020-10-31 10:07:31 475
原创 Codeforces Round #674 (Div. 3) A&B
水题。题面就不直接粘贴了,因为网速有点慢,打不开。大致的意思是,在一栋公寓楼内,第一层有两个房间,二层及以上每层都有x个房间,问第n个房间在第几层。上面是A题,B题题面如下:给你若干种22矩阵,每种矩阵有无限多个,问是否可以拼成一个mm的对称矩阵。两道题都很简单,就不具体分析了,代码稍后放在下面。这两天一直发些没什么营养的题,主要是没啥时间,大学生活还是很忙的,比如我今天晚上就是写实验报告写到11点。而且最近cgg生病了,需要多休息,所以很多比赛都没有打完,明天应该可以抽出时间,所以明天会发一些
2020-09-28 23:37:38 313
原创 Codeforces Round #673 (Div. 2) Problem A
今天的题。本来打算把比赛坚持打完的,但是因为生病了,还是早点睡吧,把第一题摸了。题面如下:BThero is a powerful magician. He has got n piles of candies, the i-th pile initially contains aicandies. BThero can cast a copy-paste spell as follows:He chooses two piles (i,j)such that 1≤i,j≤n and i≠j
2020-09-27 23:46:42 305
原创 PAT (Advanced Level) Practice——Social Clusters
题目这是昨天的博客。(拆东墙补西墙。。)今天的博客将会在明天凌晨一点打完比赛后发。昨天在帮我的一位同学看题,所以就顺便谈谈这道题。这道题的解题思路还是很明显的,赤裸裸的并查集。这里直接用最经典的并查集就可以处理,无需创新。也就是直接初始化每个爱好在各自的集合里,每扫描到一个人,就寻找他的所有的爱好的祖先,然后选取标号最小的祖先作为公共祖先,同时更新祖先对应的集合的人数,注意是人数不是爱好数。有一种创新是有些许的缺陷的,可以修复,但目前还不知道较为好的修复方法,但可以分享一下。也就是以人来表示集
2020-09-27 22:53:03 119
原创 Codeforces Round #672 (Div. 2) ProblemB
9月25日的打卡。为什么又过了零点?因为和朋友去摸鱼了。今天讲一下昨晚比赛的第二题。题面如下:Danik urgently needs rock and lever! Obviously, the easiest way to get these things is to ask Hermit Lizard for them.Hermit Lizard agreed to give Danik the lever. But to get a stone, Danik needs to solve
2020-09-26 00:18:48 124
原创 Codeforces Round #672 (Div. 2) Problem A
今日份的题目。(指9月24日,因为比赛从晚上10点半持续到12点半)问题A是水题,题面如下(大半夜了,就不翻译了,赶着睡觉)(其他题目明天再发)Wheatley decided to try to make a test chamber. He made a nice test chamber, but there was only one detail absent — cubes.For completing the chamber Wheatley needs ncubes. i-th cub
2020-09-25 00:26:38 171
原创 这是一个flag
上个礼拜被acm暴打,有一次深切地体会到自己的菜。决定在这里立下一个大flag。以后一天一个算法或者题目,也就是说每天写一篇博客!以此来促进自己在算法上的学习。(虽然很多flag已经倒下,但是这次我会尽力不让它倒)...
2020-09-23 21:50:01 283
原创 集合位置(次短路模板题)
传送门这道题就是次短路的模板题,思路很简单,先求最短路,然后枚举最短路的每一条边,每次删去一条,然后再求最短路,对于这几次结果取最小值即可。本质的理论就是最短路和次短路(如果存在的话)是不可能重合的,也许长度相等。代码如下:#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#include<queue>#include<cmath>
2020-06-25 19:22:40 215
原创 邮递员送信(洛谷1629)
传送门第一反应是Floyd,但是看看数据规模,会tle那就考虑n次单源最短路,但是即使是SPFA,也会t那肯定就另有玄机。我们每次出去送货后都要直接返回邮局,所以我们需要的信息是,从邮局到每一点的最短距离,和每一点到邮局的最短距离。无论是Floyd还是n次单源最短路,都求了很多无用的信息,即不同目的地之间的最短路,那是我们不需要的。这就会浪费时间。所以我们应该怎么精确地求出自己所需要的信息呢?我们会发现无论是从邮局出去还是从外面回邮局,都有一个核心的汇聚点就是邮局,其实这就是两个单源最短路,一个是
2020-06-23 12:41:56 270
原创 MooFest G(USACO04OPEN)
传送门这题可以采用分治的方法,类似于归并排序的思路。其核心问题在于,我们怎么化简左右结合的步骤?如果我们只是单纯的分别计算左右两两的音量,那就是假的分治,实则是暴力算法,复杂度也是O(n2)的,那就没有任何意义了,而且会tle。那么我们怎么去处理呢?我们先回忆一下归并排序为什么会比更直接的排序更快,关键在于合并的步骤,归并排序在左右合并时,巧妙地利用了左右两边分别有序的条件,从而使得合并步骤在O(n)的复杂度内完成。所以我们也不妨对这个数据进行排序,那么我们应该按什么为标准进行排序呢?我们可以
2020-06-21 12:00:10 346
原创 Balanced Lineup G(USACO07JAN)
传送门本来是冲着倍增的标签来的,结果还是用线段树直接解决了。线段树就没什么好说的了,这个其实甚至不需要线段树,用ST表更好,因为这个根本不需要修改,没有修改操作。代码如下:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=50005;int n,Q;int h[maxn];int maxh[maxn*4],minh[maxn*4
2020-06-21 00:00:00 455
原创 开车旅行(NOIP2012提高组)
题目链接这道题最基本的思路是用倍增,但是其实它的难点在预处理部分。倍增的部分此次就不细说了,和之前的最近公共祖先的思想类似。我们主要来探讨一下预处理的部分。我们需要预处理出每个城市小A和小B的选择目标和对应的距离,接下来就可以处理出进行2k轮开车的目的地和距离了。所以前者才是重中之重,而前者如果要用暴力的方法会tle的。有人可能会疑惑,我们找当前点的后面两三个不就可以了?为什么会tle呢?实际上并不是序号相差很远距离就很远,实际上有可能第一个城市和最后一个城市最近,可以举个例子,城市海拔如下:
2020-06-20 17:56:03 458
原创 BugkuCTF题解——web2
今天开始玩夺旗赛了。开心、开心。先来看这个水题。先放一下题库地址吧:题库这个web2可以说是非常简单了,我们打开目标网页可以发现有很多的滑稽。。。。但这不是重点,我们只需要打开其网页源码,就可以发现我们要找的flag。是不是很简单这里也顺便介绍一下CTF吧。就是夺旗赛,根据题目去寻找一串代码,而这串代码就是flag,也就是我们要找的旗,找到旗就算解题成功。是不是很有意思?一起来试...
2020-02-18 22:20:07 343
原创 Android开发——APP计时功能开发详解(含暂停计时功能)
我们平时在开发APP的过程中,可能会经常遇到需要计时功能实现的问题,比如:我们设计一个竞速的游戏,那就需要计算玩家游戏用时,这时我们就需要计时并把时间实时显示在屏幕上,那么我们应该怎么去实现呢?今天cggwz就详细地为大家讲解一下计时功能的开发。效果图下面是效果图,计时器在右上角。这是从我的一个项目里抠出来的,所以接下类的教学做出的效果可能不是这样,当然了我接下来的教学只是围绕核心的功能设...
2020-02-08 12:31:17 1427
原创 如何理解Android中的context?
我们在动态创建组件时,经常会发现需要一个参数context,而我们多数情况下可能就填一个this就结束了,那么context究竟是何方圣神呢?官方解释什么意思呢?官方的解释说这个context是访问全局信息的一个接口,言下之意就是,我们通过context可以引用全局的信息。那这些信息是什么呢?比如我们的布局、图片、字符串等,res文件夹下的那些东西,都可以通过context来访问。怎...
2020-02-07 11:11:02 304
原创 Java版本的DLX解决数独算法
DLX又称作精确覆盖问题,而今天要说的就是把解数独这个问题转化为一个精确覆盖问题,然后来解决它。其实这是一个很好的解决问题的思路,很多问题都可以转化为一个精确覆盖问题,然后用接下来这个算法来解决它。关于DLX的思想,网上有不少的解释,这里我就不再赘述,我会在我的另一篇博客里讲解原理。首先是整个代码的结构。总共分为四个类,分别是:主类(StartPoint)转换器类(Transfer)...
2020-01-29 11:01:10 560
原创 大学C语言考试易错知识点总结
文章目录运算符相关自增(减)前后缀逻辑运算符的短路问题赋值运算符的返回值问题运算符优先级的问题函数相关函数声明问题mian函数参数问题变量相关用字符串初始化字符数组赋初值问题转义字符问题常用ASCII码记忆字符串常量占用内存问题数组相关数组下标越界二维数组中行列计算问题字符数组赋值问题结构体相关结构体所包含的变量不可初始化库函数相关绝对值函数现在不少大学都把C语言作为一门必学的编程语言。而每到这...
2019-12-28 23:02:17 4840 3
原创 洛谷题解——统计单词个数(NOIP)
传送门好久每写题了,接下来会多写些题的。这道题是典型的动态规划。大致上的思路是,先预处理出num[i][j]表示在区间[i,j]上有多少符合题意的单词。然后用f[l][part]表示把前l个字符分成part部分,最大的单词数是多少。然后我们就可以写出状态转移方程:f[l][part]=max{f[j][part-1]+num[j+1][l]}代码如下:#include<cstd...
2019-12-24 17:58:54 357 1
原创 python学习笔记——异常处理
程序在执行过程中,经常会由于系统、或者用户输入等造成一些问题,我们称之为异常。我们当然不能视而不见,或者当所有用户都是良好的用户,否则会造成意想不到严重后果。今天我们就来学习对异常的处理。python标准异常python本身有一些内置的异常类型,就好像我们在编译我们的程序时,当我们出问题时会报错一样。这些异常见下表:异常名称描述BaseException所有异常的...
2019-12-16 08:10:28 241
原创 python学习笔记——文件操作I/O
作为入门,我们将会学习一些基本的I/O操作,如果需要其他更高级的操作可以参考官方文档。标准输入输出也就是从屏幕读入或者从屏幕输出。输出很简单,就是我们一直在使用的print,我就不举例了。输入的话,主要是input,之前python2.x还有input_raw,但是python3已经把它删掉了,所以我们就只说inputinput的参数是我们需要显示给用户的提示信息。而用户的输入会作为i...
2019-12-15 16:10:38 248
原创 python学习笔记——日期和时间
今天来学一下python对于时间的处理方法。python提供了time和calendar两个模块来处理时间。在python中,时间间隔是以秒为单位的浮点小数。每个时间戳都是以距1970年1月1日午夜多长时间来记录的。引入:time()的用法time模块中有一个time函数可以用来获取上述所说的时间戳,我们举个例子:import timeprint(time.time())运行结果...
2019-12-14 16:38:46 161
原创 python学习笔记——python基本语法补充
中文编码问题我们之前在小插曲这篇博文中提到了中文编码问题以及其解决方案。这里再做一些补充。这个中文编码问题之所以会出现,是python2.x没有指定编码形式而导致的。所以我们只需要在文件开头加上:# -*- coding: UTF-8 -*-或者#coding=utf-8即可。当然了,我也强调了,这是2.x的问题,所以对于3.x是不会有问题的,3.x默认制定字符集为utf-8.语法图这里...
2019-12-13 09:11:46 178
原创 汇编语言第十章——CALL和RET指令
今天我们学习call和ret指令。我们在第九章里学习了转移指令的原理。今天标题里的两个指令,也都是转移指令。那么,下面我们就分别来讲解这两个指令。ret和retf那么这个指令的用处是什么呢?ret是利用栈中的数据来修改IP,从而实现近转移。retf利用栈中的数据来修改CS和IP,从而实现远转移。由这里的定义,我们可以看到,我们修改用的数据和数据来源,以及修改的目标都是非常明确的,所...
2019-11-28 20:20:52 1748
原创 汇编语言第九章——转移指令的原理
定义什么是转移指令?我们对其的定义如下:可以修改IP,或同时修改CS和IP的指令统称为转移指令简单来说,就是可以控制CPU执行内存中某段代码的指令。我们先总的对这类行为进行一下分类。从行为角度,主要有一下两类:段内转移:只改变IP段间转移:同时改变IP和CS在考虑修改的范围:短转移的IP范围:-128~127近转移的IP范围:-32768~32767所以我们就可...
2019-11-21 17:20:45 359
原创 汇编语言第八章——数据处理的两个基本问题
至此,我们已经学习了七章和数据、内存相关的章节,此处我们需要进行一下总结。首先提出标题中提到的数据处理的两个基本问题:处理的数据在哪个地方?要处理的数据有多长?我们首先对寄存器进行一个分类:寄存器(reg):ax,bx,cx,dx,sp,bp,si,di段寄存器(sreg):ds,cs,ss,esbx,si,di,bp前面三个我们已经学习过了。把这几个放在一起,显然是为了...
2019-11-21 15:52:22 186
原创 EGE学习一——EGE介绍、安装和使用
什么是EGE?EGE就是Easy Graphics Engine,简易图形引擎(我是这么翻译的)。那么它可以做些什么呢?它类似于一个图形库,可供我们制作更加优秀的画面使用。使用的语言就是C,我们只需要下载安装好后,使用时用include引入就好。下面我们引用一下开发者对其的描述:●为什么要写这个库?许多学编程的都是从 C 语言开始入门的,而目前的现状是:有些学校以 Turbo ...
2019-11-18 23:56:24 1233
原创 汇编语言第七章——更加灵活的定位内存的方法
and和or我觉得没什么值得解释的,大家应该都是明白的。举个例子:and al,10110101bor al,10101010b就是把寄存器中的值and上或or上某个数。ASCII码这个大家应该也都知道。字符与字符串汇编里的字符和字符串由’'给出。比如:db ’unIX‘mov ax,'a'其中db意思是“define byte”而其在内存中的存储形式,就是ASCI...
2019-11-14 16:59:39 162
原创 汇编语言第六章——包含多个段的程序
今天我们来看看第六章。在代码段中使用数据我们知道在高级语言中,有数组这样东西。那么在汇编语言中,我们又如何将一段数据保存在一段连续的内存中呢?我们肯定不能随便找到一段内存,然后就往里面存,因为那样可能会覆盖那里原有的非常重要的东西。所以我们应当让系统为我们分配。这里就又涉及到一个语句:dw 0123,2312,34a3,1231,3456这里dw是“define word” 的意思...
2019-11-13 17:43:51 260
原创 CRC码计算及原理(FCS帧校验序列生成)
我们知道在以太网帧的末尾有一个叫FCS的东西。全称:Frame Check Sequence,中文名:帧检验序列这个东西是用来检验我们的数据是否在传输的过程中被破坏(不一定是收到攻击,也可能是一些物理干扰),以更好的安排重发。而其中最常用的,也是检错能力很强的,就是CRC,循环冗余校验码。操作流程一个小背景知识模二除法,或者说在数域{1,0}上的除法。与普通除法类似,它也可以列竖式计...
2019-11-12 21:30:28 19100 6
原创 汇编语言第五章——[BX]和loop指令
今天我们继续看第五章。 我们先讲一下,作者有一个这样的约定: 为了描述上的简洁,在以后的课程中,我们将使用一个描述性的符号“()”来表示一个寄存器或一个内存单元的内容。所以我们这里沿用这个记号。首先我们先来看一下[BX]。 这个是什么? 大家应该还记得[address]吧? 我们当时的这个是用来指定偏移地址的。 所以,我们这里也是这样。 其实就是用bx中的内容去指定偏...
2019-11-12 15:06:47 401
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人