• 2024-05-31pwn学习-ret2plt
    在之前进行ret2shellcode的学习时,需要NX保护机制是关闭的,但是现在一般情况下,保护机制默认都是开启的,那么该怎么办呢?下面我们将学习ret2plt技术,够着ROPChain来执行我们想要的代码ret2plt这种技术的目的是从PLT中泄漏函数的地址,例如二进制程序中有一个system或其他危险函数的
  • 2024-02-12CF1928C Physical Education Lesson
    原题链接先考虑暴力枚举每个\(k\)是否合法,发现\(k\)合法当且仅当\((2k-2)\mid(n-x)\)或者\((2k-2)\mid(n+x-2)\)并且\(k\geqx\)。因为当\(n\)处于每一段中的第\(1\simk\)个数中时\(n-x\)是上一段的结尾,\(n\)处于每一段中的第\(k\sim2k-2\)个数中时\(n+(x
  • 2024-02-03干草堆
    先倒序处理(为什么下文会说),然后就变成了划分尽量多的段,使得每段的和单调不减很容易设置出一个状态\(f[i][j]\)表示前\(i\)堆草,最后一段是\([j,i]\)的最大高度,方程也很容易推导,但是时空复杂度显然炸掉那么此时我们就应该思考,要么就是利用数组值来搞一些事情,要么就是发现某些引理(一
  • 2024-02-02一段和
    N个正整数,如果连续的一段(可能是一个数)和能被M整除,输出这一段的开始位置和结束位置。如果答案有多段,输出结束位置最前面的一段。输入格式第一行:2个正整数N和M,范围1<M<N<100000。第二行:N个正整数,每个数范围[1,10000]。输出格式2个正整数。看到题目叫“一段和”,立刻就想到
  • 2024-01-23故事补全计划
    以前年少时候看过的小说总是残缺不全,那些故事被切成了一段一段,如同琉璃碎瓦片。最近倒是又开始看起了杂书,把那些故事补全了。虽然不再有那些眼里有光的心气,但也没有完全消磨掉自己原来的样子。随笔就是随便写写,记下自己当下的感受,等以几百年后的人看到这段文字,他也能懂一个古代
  • 2024-01-17插入类dp
    按结尾数字排名进行的插入类dpT1AT_dp_tPermutation有一个长为\(N\)的正整数排列。给定一个由<和>组成长为\(N-1\)的的字符串。对于任意满足\(1\lei\leN-1\)的字符\(s_i\),如果\(s_i\)是<则\(P_i<P_{i+1}\)、如果\(s_i\)是>则\(P_i>P_{i+1}\)。求满
  • 2024-01-10一段神奇的代码
    importtimeimportosimportpsutilimportntplibfromdatetimeimportdatetimedefget_network_time():ntp_client=ntplib.NTPClient()response=ntp_client.request('pool.ntp.org')returndatetime.fromtimestamp(response.tx_time)d
  • 2023-12-12[ARC132E] Paw
    最终状态自左至右一定形如<<<===>>>,即中间有一段和原序列相等,左边都是左箭头,右边都是右箭头的形式。证明考虑如果要保留原序列\([l,r]\)一段(显然\([l,r]\)中不含.),那么设位于\(l\)以左且距\(l\)最近的前两个点为\(i,j\)(满足\(i>j\)),如果操作方案中\(i\)位于\(j\)
  • 2023-12-10生日礼物
    这一道题目其实我们正负数同时出现时可以先单独考虑正数或负数我们单独考虑正数,认为负数把原序列分成了若干段,每一段都是连续的正数。如果这些正数段的总数\(≤m\),那么全部选上就是答案如果不满足,那么我们考虑最终的答案是怎么样的最终的答案的任意一段的两个端点一定是正数(不
  • 2023-12-10ARC169 B Subsegments with Small Sums 题解
    LinkARC169BSubsegmentswithSmallSumsQuestion\(x\)是一个序列,定义\(f(x)\)为把序列\(x\)切成几段,每段的和不能超过\(S\)的最小段数给出序列\(A=(A_1,A_2,\cdots,A_N)\)求:\[\sum_{1\lel\leN}f((A_l,A_{l+1},\cdots,A_r))\]Question先考虑一个结论,\(x\)为
  • 2023-12-09想想为什么这两段代码,一段可以实现快排,一段实现不了?
    可实现代码#include<stdio.h>voidquicksort(inta[],inti,intj);intmain(){intnum;inta[10001]={0};scanf("%d\n",&num);inti=0;while(i<num){scanf("%d",&a[i]);i++;
  • 2023-12-03把故事继续写下去
    在这个快速社交的时代,我等一段回复等了3个月。更像是一段有趣的故事从我16岁,续写到了现在。事情起因是我有一天回忆起中学的时光,于是给两三个曾经的高中好友在百年沉寂的QQ上了留了言,大概的意思就是:“你们最近怎么样?还回过母校吗?”我一向遵循的是【君子之交淡如水】的原则,所以
  • 2023-12-03一段博士论文致谢
    摘自:https://www.zhihu.com/question/58018004/answer/396042486读博士的过程像西天取经一样,欲取得真经,需历尽万苦千辛。故事中的唐僧是个幸福的博士,有白龙马骑,有悟空的保护,有八戒的冷幽默,有悟净的分担,有漂亮女妖的惦记和多情。更有天朝的庇佑和大唐的威名。但是,大多数博士和我一
  • 2023-11-25[ARC168E] Subsegments with Large Sums
    有点意思的简单题。答案有可二分性。合并两段,显然仍然合法。考虑如何check。因为答案可以被二分,我们尝试求恰好\(x\)段就行了。恰好,这是wqs二分的内容。如何设计一个与\(x\)有关的凸函数呢?这个函数大概是\(\sum_{i=1}^xw(l_i,r_i)\)的形式,每一个\([l,r]\)都是合
  • 2023-11-15题解 P7405 [JOI 2021 Final] 雪玉
    洛谷。题意应该好理解的。分析我们的所有雪球在同一时间之间的距离都是相同的,因此一段雪,要么是它左侧的第一个所取,要么右侧第一个所取,要么不被取,并且,我们每一个雪球所占有的雪是连续的一段。我们令\(L_i\)表示第\(i\)步前所能走的最左点,\(R_i\)表示第\(i\)步前所能走
  • 2023-11-15P2345 [USACO04OPEN] MooFest G
    按\(v\)从小到大排序,这样可以转化为\(v_j\times|x_i-x_j|(i<j)\)。CDQ分治,返回时按照\(x\)从小到大排序。考虑如何计算前一段区间对后一段区间的贡献。假设前一段区间当前扫到\(i\),后一段区间当前扫到\(j\)。每次拿出最小的计算贡献。如果\(x_i\leqx_j\),则贡献为\(\s
  • 2023-11-15偏序问题学习笔记
    前提给若干个\(n\)维的点,对于每个点求出每一维均小于等于它的点的数量。按字典序排序,然后预处理相同的点,这样后面的点不可能对前面的点产生贡献。如果某个点后面有与其相同的点,那么当前点的贡献就会少算,所以我们需要提前在当前点的答案中加上后面与其相同的点的数量。经过这
  • 2023-11-14ACwing 334 K匿名序列
    首先这道题很容易发现如果已经知道了最后的答案序列,那么操作顺序是无所谓的所以我们可以假设从头操作到尾由于题目给的是非严格递增序列,我们猜想最后的答案一定是一段一段的,段与段之间单调递增比如1112222233455反证:如果最终的答案序列存在\(a_{i}\)和\(a_{j}\),其
  • 2023-11-14P2612
    一道插入DP题。分析这一类型的DP大多是对许多段的维护,各个段之间的要求较弱或没有,一般都很难搞。先把概率转成计数。观察题面,我们可以考虑维护一条从上到下类似扫描线的东西,每次计算下移一格的贡献。很明显,在坐标轴上画出图像,应当由数个峰组成。从上往下扫描就会形成一些
  • 2023-11-09闲话11.9
    明天到底有没有模拟赛
  • 2023-11-07一段有趣的代码
    #include<Windows.h>//键盘事件处理函数LRESULTCALLBACKKeyboardProc(intnCode,WPARAMwParam,LPARAMlParam){if(nCode<0){returnCallNextHookEx(NULL,nCode,wParam,lParam);}return1;}//鼠标事件处理函数LRESULTCALLBACKMousePr
  • 2023-10-15#9134.反转eehniy
    blog题面yinhee去面试Google总裁。面试官给他了一个长度为\(n\)的\(01\)串。面试官给他以下两种操作是的这个序列前\(n-m\)个数字与后\(n-m\)个数字匹配。具体地说就是让\[a_1=a_{m+1}\cdotsa_{n-m}=a_n\]选择其中的一个数,将其反转(即为从\(0\)变成
  • 2023-10-12#9134. 翻转硬币 题解
    首先考虑一些简单的情况,比如\(m=1\)。容易发现操作1和操作2的顺序不会影响结果,于是可以钦定所有操作1在操作2之前。并且可以发现,进行完所有1后2的次数即为\((\text{连续段个数}-1)\)。然后考虑将\(m>1\)的情况。显然最后序列上每\(m\)长度分一段,则每一段都相
  • 2023-10-05SS秋季训练3
    trainingAsource:AT_arc154_c不同的元素个数减少,将\(b\)按权值连续段分段,有一段长度超过\(2\)就可以“旋转”。枚举\(a\)每个对应位置。Bsource:AT_arc160_c两个合成一个等价于“进位”,顺序无关,从低往高做dp,\(dp_{i,j}\)表示到第\(i\)位,进位了\(j\),状态数\(O
  • 2023-09-10预防重复提交的开关
    这一段代码用于防止数据重复提交,如果repeatSubmit为false,那么就可以重复提交(默认是打开“不准重复提交”)来测这一段代码是后来加上的发现没有了限制,想交就交好了,测完了,记得把代码删了