自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2024-04-26 17:43:46 688

原创 第 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 397

原创 华为杯“华南理工大学程序设计竞赛(同步赛) 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 255

原创 RE | BUUCTF 刮开有奖1

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

2024-04-25 18:34:52 521

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

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

2024-04-15 16:47:05 322

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

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

2024-04-15 16:44:08 217

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

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

2024-03-13 21:55:12 136

原创 启发式合并学一学

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

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

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

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

2023-11-09 15:07:13 151

原创 【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 194

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

关于Kali使用

2023-09-26 15:35:14 213

原创 【re】BUUCTF Java逆向解密

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

2023-09-25 17:35:51 1002

原创 BUUCTF SimpleRev

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

2023-09-25 16:38:30 122

原创 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 233

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

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

2023-09-18 10:55:30 53

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

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

2023-05-03 17:16:12 927

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

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

2023-04-01 12:13:05 382

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

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

2023-02-20 21:02:27 134

原创 BUUCTF Reverse xor

BUUCTF Reverse xor的做题记录

2023-02-19 22:45:27 489

原创 平衡树(Treap)

平衡树Treap

2023-02-08 10:44:21 96

原创 CTFShow re2 (RC4

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

2022-12-04 11:27:34 1083

原创 CTFShow pwn07 (ret2libc-64bit

CTFShow pwn07解题记录

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

原创 CTFShow pwn04

CTFShow pwn04 解题记录

2022-12-03 11:19:28 780

原创 CTFShow re3

CTFShow re3解题记录

2022-12-01 23:17:51 1433

原创 攻防世界 re新手题 game

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

2022-11-30 22:03:28 196

原创 CTFshow pwn03(ret2libc-32bit

CTFshow-pwn03 writeup

2022-11-30 08:54:59 673

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

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

2022-10-31 12:53:03 177

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

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

2022-09-22 22:22:36 97

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

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

2021-07-16 18:12:03 100

转载 错排问题

引自 百度-错排问题错排问题是组合数学发展史上的一个重要问题,错排数也是一项重要的数。令 {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 165

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

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

2020-06-27 21:30:11 152

原创 双向链表

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 139

原创 二分

参考:李煜东《算法竞赛进阶指南》整数集合上的二分//在递增序列中查找>=x的数中最小的(x或x的前驱)int bsearch_1(int x, int l, int r){ //区间划分为[l, mid][mid + 1, r] while (l < r) { int mid = l + r >> 1;//mid不会取到r if (a[mid] >= x) r = mid; else l = mid +

2020-06-07 09:21:51 200

原创 归并排序[模板]

void merge_sort(int a[], int tmp[], int l, int r){ if (l >= r) return; int mid = l + r >> 1; merge_sort(a, tmp, l, mid); merge_sort(a, tmp, mid + 1, r); int k = 0, i = l, j = mid + 1; while (i <= mid &&amp

2020-06-04 23:19:59 136

原创 快排[模板]

简单模板void quick_sort(int a[], int l, int r){ if (l >= r) return; int i = l - 1, j = r + 1; int x = a[l + r >> 1]; while (i < j) { do i++; while (a[i] < x); do j--; while (a[j] > x.

2020-06-04 22:32:53 1049

原创 乱七八糟的笔记(%)

c++中,%是对绝对值取模,即% x与% (-x)结果相同

2020-02-17 22:39:16 143

原创 乱七八糟的笔记(0x7f7f7f7f和0x7fffffff)

int最大值:0x7f7f7f7f = 21474836472147483648溢出为-2147483648

2020-02-17 22:37:36 3184 6

原创 乱七八糟的笔记(关于memset与一些数值)

0x3f3f3f3f数值大于1e9,且满足无穷大 + 无穷大 = 无穷大(不会溢出int)memset(f, 0xcf, sizeof f) -> -808464433memset(f, -0x3f, sizeof f) -> -1044266559memset(f, 0x3f, sizeof f) -> 1061109567...

2020-02-17 22:32:12 443

原创 堆(模板)

#include <iostream>#include <cstdio>using namespace std;const int N = 1000005;int heap[N];int n;void up(int p){ while (p > 1) { if (heap[p/2] > heap[p]) swap(heap[p/2],...

2019-11-08 09:32:17 123

转载 洛谷 P1403 [AHOI2005]约数研究

洛谷 P1403 [AHOI2005]约数研究思路:Kelin的题解代码(自己的丑代码)#include <iostream>#include <cstdio>int main(){ int n; long long ans = 0; scanf("%d", &n); for(int i = 1; i <= n; ++i) { an...

2019-09-08 10:59:26 122

空空如也

空空如也

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

TA关注的人

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