自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 我的python管理

pycharm:??以后应该会补吧…因为某些文件似乎用的python2决定整个python2。

2024-06-06 21:48:05 363

原创 re | BUUCTF findit

看了别人的题解发现b数组是加密后的数组(确实很像,拼起来可以看到开头四个字母,然后两个大括号把一堆字符括起来),b到y就是凯撒密码解密的过程…大概逻辑是,由给定的a数组得到x数组,用户输入和x相等时会输出flag——由给定的b数组得到的y数组,不相等则输出提示。也有像我这样的代码的,但是能得到正确结果,是因为是python吗…是个apk文件,用jadx打开,找到MainActivity。但是为什么自己写的y数组不正确呢,通过调试发现有情况是。时,数值超过了127,导致了溢出。

2024-05-17 22:14:32 201

原创 re | BUUCTF [GWCTF 2019]pyre

(最后为了防止有人和我一样不熟悉python三步一错。思路很明显,但是为什么反编译出来是。,我纠结了好久,最后翻题解发现应该是。)这样就合理了,都是单个字符。:字符转ASCII码。:ASCII码转字符。

2024-05-17 21:05:00 268

原创 CTF工具

是这样的…现在要装upx想起来写一下…大概又是持续更新(?)有时间就把之前的补一下。

2024-05-17 20:14:25 212

原创 re | BUUCTF 简单注册器

看到onclick()函数,非常明显的flag。一个只要能apk反编译就很容易的题。jadx打开apk,翻到主函数。

2024-05-17 20:08:41 197

原创 re | BUUCTF [ACTF新生赛2020]easyre

给定的字符串v4和_data_start__和v5的神秘关系,v5是int数组,但是把v5指针转换成了char*,推测就是char数组,把v5定义成char数组。思路比较清晰,输入的字符串有一系列限制,都满足则输出 你对啦,否则会提前return 0。可以得到v6和v10(一开始是数字,右键改成char就能看出来像flag的样式)输入字符串是包含v6、v7、v8、v9、v10的,ida把它们切开了。(这里不放心对不对的话可以把原代码拿来验证一下,我一开始就写错了。就得到了十六进制值,稍微改改代码里就能用。

2024-05-17 17:11:17 466

原创 Codeforces Round 942 (Div. 2) A-D2

Codeforces Round 942 (Div. 2) A-D2

2024-05-07 22:53:46 539

原创 AtCoder Regular Contest 176(ARC176)A、B

既然固定一个x + y = k能选出n个格子,并且保证每行每列一个,那么能不能选出m个不同的k,达到每行每列m个呢?给一个n×n的方格,给出m个坐标(x,y)×m,在方格中选择一些格子填入1,要求填完后每行有m个1,每列有m个1,并且之前给出的坐标对应方格中也是1,输出一种可能的方案。可以让行坐标x+列坐标y(模n)固定,x遍历0~(n - 1)时,y也遍历0~(n - 1)。) % n,x遍历0~(n - 1),y = (k - x + n) % n。),显然k = (x。),选上k = (x。

2024-05-06 20:29:37 718

原创 pwn | BUUCTF rip 1&& pwn基本思路

(写得好详细我好爱(为什么payload有两种写法于。

2024-04-26 17:43:46 1308

原创 第 46 届 ICPC 亚洲区域赛(上海)补题 GI

当size(x)为偶时(即子树上边数为奇),就需要留一条边(与{x, fa[x]}或者其他留下的边成一组),其他边分组,记这样的方案数为dp[x]f[i][j][k]表示从1-i中选,用了j次加倍,S和T的t值之和的差+2600为k时,能获得的v值之和最大值。当size(x)为奇时(即子树上边数为偶),那么可以子树中两两分组,记这样的方案数为dp[x];把s条边两两分组,即先在s中取2个,再在s - 2中取2个…最后除以s/2的排列。那么计算dp[x]时,不仅要x的所有儿子的方案相乘,还要将留下的边分组。

2024-04-26 10:41:20 542

原创 华为杯“华南理工大学程序设计竞赛(同步赛) A KNN算法

如果目标值在序列中有多个,lower_bound返回的是第一个目标值的迭代器,而upper_bound返回的是最后一个目标值的下一个迭代器。思路挺好想的,二分枚举答案,判断距离为mid时是否满足范围内刚好有k个点。,l+r是会爆int的,所以l、r、mid都要开long long。lower_bound返回的是第一个大于等于目标值的迭代器。upper_bound返回的是第一个大于目标值的迭代器。l和r的初值其实就是答案的可能取值,由于坐标范围是。的点的下标(也就是最后一个坐标小于等于。但是赛场了调了很久…

2024-04-25 21:16:21 342

原创 RE | BUUCTF 刮开有奖1

(这是主参考,写得很详细(主参考的参考,思路很清晰我是大菜鸡…尽力写自己的理解了,哪里有不对的希望指正。

2024-04-25 18:34:52 754

原创 [蓝桥杯 2023 省 A] 网络稳定性

判断询问是否已成立的方法也很简单,只需查询该询问中的另一个端点是否在我们将要合并的连通块内即可,时间复杂度 O(α(n))。会不会影响该做法的正确性呢?化简题意后发现,这题本质是将边按边权从大到小排序后依次插入原图,询问两个点在什么时候会连通,允许离线。利用启发式合并的思想,我们将每个询问挂在它的两个端点上,在合并两个联通块时,处理较小的连通块中的询问。查询时,查 u 和 v 的 LCA 的权值即可,即为最大连通路径上的最小连通权值。因为按权值从大到小遍历,已经通过权值大的边,使得点之间尽可能连通了。

2024-04-15 16:47:05 363

原创 【树链剖分】模板+树剖lca

树链剖分将整棵树剖分为若干条链,使它组合成线性结构,然后用其他的数据结构维护信息。本文讨论常见的重链剖分各定义来自OI Wiki 树链剖分重子节点子节点中子树最大的子结点轻子节点表示剩余的所有子结点重边从这个结点到重子节点的边轻边到其他轻子节点的边若干条首尾衔接的重边构成重链[fa(x)] 表示节点 [x] 在树上的父亲。[dep(x)] 表示节点 [x] 在树上的深度。[siz(x)] 表示节点 [x] 的子树的节点个数。[son(x)] 表示节点 [x] 的 重儿子。

2024-04-15 16:44:08 252

原创 蓝桥杯2023年省A(一波三折的)【买瓜】折半搜索+剪枝+排序

我的理解是,在搜第二段的时候,前面已经出现很多凑到m的情况,使ans变小了,所以第二段会被剪得更狠;那有没有办法让第一段多剪掉一点呢,就让第一段都是大数,sum容易超过m,就会多多被剪了。不直接搜i+1,而是根据还需要的斤数在剩下的瓜里二分(因为已经排序了嘛),大于还需要的斤数的瓜可以不用考虑。一开始觉得像dp,试着写了,显然过不了,但我实在觉得搜索也过不了啊,去看题解,发现使用了。折半搜索就是先搜一半,记录下答案,再搜一半,最后把答案整合在一起。菜死我算了,真在赛场上碰到这种题我就拿个30分吧(默哀。

2024-03-13 21:55:12 162

原创 启发式合并学一学

但是我们发现,对于每个节点v,最后一棵子树是不用清空的,因为做完那棵子树后可 以把其结果直接加入v的答案中。整体思路就是用cnt数组记录子树中颜色出现的次数,但是计算完一棵子树需要清空,最后计算重儿子的子树不需要清空。就是加了一个桶来记录cnt的状况,以此来维护子树上的最大值和最小值,一棵子树最大值=最小值即是平衡的。当然是所含节点最多的一棵咯,我们称之为“重儿子”但是每做完一棵子树就需要清空ap,以免对其兄弟造成影响。其实感觉这样快不了多少……而这样做它的祖先时就要把它重新搜一遍,浪费时间。

2024-03-13 14:11:58 282 1

原创 AC自动机(跟算法提高课学的

每个节点x对next[x]的答案做贡献,所以可以沿着树的底层节点往上跳,顺序就是深度遍历反过来,所以可以直接用队列的逆序(妙啊,要是我已经用stl的queue再用vector倒一次了)每个单词s出现多少次实际上就是树上有多少前缀以s为后缀,这样不好算所以可以每个“后缀”对“前缀”节点做贡献,也就是以x为结尾的后缀会对以next[x]结尾的前缀做贡献。讲的很清楚,基本上把算法提高课这一节的内容,从KMP到AC自动机到优化版都讲明白了(虽然我还不是很懂但讲的比我好比我详细,强推!

2023-11-09 15:07:13 166

原创 【re】BUUCTF [GXYCTF2019]luck_guy

靠运行程序得到的话也就是要先随机到4给f2赋值,再随到5对f2进行加工,最后到1进行拼接并输出flag,不知道有没有真的能随机出来的幸运儿呢。至于f2,在case4中可以看到(把那一串奇怪的数字转成char并翻转一下),但看着还是不像正常的字符串。再看到case5中对f2进行了长度为8的操作,于是猜是要对f2操作后再拼接起来得到flag。case1中可以看到,s是flag,由f1和f2拼接而成,双击f1得到。无壳,64位,ida打开找找找到get_flag()函数。,这就很像flag了,去交交。

2023-09-27 09:26:18 223

原创 VMware/kali使用小贴士(持续更新(吧

关于Kali使用

2023-09-26 15:35:14 235

原创 【re】BUUCTF Java逆向解密

ida打开看不懂,找了网页上的java反编译。暂且用sublime打开。注意加优先级比异或高,逆推得到。没壳,是java文件(大概)唯一有的说的就是那句。

2023-09-25 17:35:51 1029

原创 BUUCTF SimpleRev

v9和src显示的是整形,右键选择char得到字符串,需要翻转一下,可能是大端小端的问题,卡了我很久()可以看到加密算法与位置有关,不好分析,但可能的选择很少,只有大小写字母,于是枚举。虽然输入允许空格,但加空格会变复杂,我选择先不加看看能不能出(写了大小写两块,发现都有合法的,不知道是不是我哪里看漏了。但是只有大写是正确的flag。key1和key3双击找到。很好懂,主要看Decry。

2023-09-25 16:38:30 135

原创 BUUCTF 不一样的flag

再结合语句和运行exe给的走迷宫提示,可以翻译出:碰到1就是走错了,最后走到#就是走对了,此时输入就是flag。ida分析,嗯,啥也看不出来,v12345什么的非常混乱。所以就是每次操作后都要检查x和y坐标是不是在0~4之间。这样一看就还挺清楚的,v4就是横坐标,t就是纵坐标。有很多1,以#结尾,大胆猜测这就是迷宫地图。i为0的时候是v3[25]那里,也就是t。i为1时是再下一个int,也就是v4。分析一下输出和操作这段,v5是输入。先查,没壳,32位,打开。字符里能找到这么一个。于是可以走走,序列是。

2023-09-24 17:29:58 264

原创 【2023牛客多校训练营10】L Grayscale Confusion

大概相当于是一个构造题,将(r, g, b)映射为函数值,满足大小关系以及最初两组(c0和c1)rgb的值相等。尤其注意的是公式得到的值是double,最后不能直接取整,要用。(因此得过一次93.3333的高分)看懂了之后自己打了一遍。

2023-09-18 10:55:30 93

原创 pwn的kali64虚拟机环境搭建记录

自己记着备用的pwn环境搭建记录,虚拟机:VMware Workstation ProLinux版本:kali64

2023-05-03 17:16:12 982

转载 为什么32位操作系统最大支持4GB内存

每个地址对应1Byte内存空间,这样,32位操作系统管理的最大内存空间限制为2。Byte=4 * 1024 * 1024 * 1024Byte,即4GB。因为32位操作系统的地址空间为32位,地址总数为2。

2023-04-01 12:13:05 489

原创 洛谷P5651 基础最短路练习题

洛谷P5651 基础最短路练习题,简单分析后直接bfs

2023-02-20 21:02:27 149

原创 BUUCTF Reverse xor

BUUCTF Reverse xor的做题记录

2023-02-19 22:45:27 519

原创 平衡树(Treap)

平衡树Treap

2023-02-08 10:44:21 110

原创 CTFShow re2 (RC4

本文:跟着大佬的博客一步一步做CTFShow re2的记录

2022-12-04 11:27:34 1189

原创 CTFShow pwn07 (ret2libc-64bit

CTFShow pwn07解题记录

2022-12-03 19:55:20 1150 2

原创 CTFShow pwn04

CTFShow pwn04 解题记录

2022-12-03 11:19:28 899

原创 CTFShow re3

CTFShow re3解题记录

2022-12-01 23:17:51 1568

原创 攻防世界 re新手题 game

攻防世界 re新手题 game 解题记录罢了

2022-11-30 22:03:28 220

原创 CTFshow pwn03(ret2libc-32bit

CTFshow-pwn03 writeup

2022-11-30 08:54:59 773

原创 C++运算符重载例子和笔记

C++运算符重载的例子(矩阵的基本操作)和笔记

2022-10-31 12:53:03 221

转载 Python中字符串的索引问题

Python中的字符串索引,可从0开始,可从-1开始

2022-09-22 22:22:36 119

原创 乱七八糟的笔记/关于nan

乱七八糟的笔记/关于nan参考:百度百科NaN : Not a Number,非数返回nan的运算:至少有一个参数是NaN的运算不定式除法运算:0/0、∞/∞、∞/−∞、−∞/∞、−∞/−∞乘法运算:0×∞、0×(−∞)加法运算:∞ + (−∞)、(−∞) + ∞减法运算:∞ - ∞、(−∞) - (−∞)产生复数结果的实数运算对负数进行开偶次方的运算对负数进行对数运算附:sqrt(-10)结果...

2021-07-16 18:12:03 123

转载 错排问题

引自 百度-错排问题错排问题是组合数学发展史上的一个重要问题,错排数也是一项重要的数。令 {aka_kak​} (1⩽k⩽n)(1 \leqslant k \leqslant n)(1⩽k⩽n) 是 {nnn}, n∈Nn \in Nn∈N 的一个错排,如果每个元素都不在其对应下标的位置上,即 ak≠ka_k \not= kak​​=k,那么这种排列称为错位排列,或错排、重排(Derangement)。我们从分析1 2 3 4的错排开始:1 2 3 4的错排有:4 3 2 1,4 1 2 3

2020-06-27 22:53:07 180

原创 乱七八糟的笔记/关于typedef

int pre[N], size[N], vis[N], ...等同于typedef int intN[N];intN pre, size, vis, ...

2020-06-27 21:30:11 162

原创 双向链表

AcWing 827. 双链表 k处元素对应下标为k + 2#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int N = 100005;int e[N], l[N], r[N];int head, tail, idx;void init(){ idx = 2; head = 1, tail = 2; r[hea

2020-06-07 10:56:02 151

空空如也

空空如也

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

TA关注的人

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