• 2024-06-16编写多个函数的ROP链
    我们已经学会了编写单个和两个简单函数的ROP链,在这里我们说一下,编写ROP链多个需要注意的问题之前我们在学习两个函数的ROP时,编写了这样的payload我们当时没有考虑,参数冲突和栈溢出大小,现在我们来说一说举个例子,如果我们上次学习的两个函数的ROP中没有gets函数,而是read函数我们
  • 2024-06-07scanf(),gets(),puts(),fgets()函数的使用
     scanf()scanf按%d输入数字或%s输入字符串时,忽略空格、回车或制表符等空白字符(被作为数据的分隔符) intmain(){ inta=0; intb=0; charc[12]; scanf("%s",&c); printf("c=%s",c); return0;}空格后面的world没有被读进去加一句scanf语句,world被读走了in
  • 2024-05-25c++/c语法基础【2】
    目录1.memset数组批量赋值2.字符数组 ​编辑输入输出: 字符数组直接输入输出%s: gets!string.h 1.strlen:字符串去掉末尾\0的长度
  • 2024-05-24pwn基础入门-buuctf-2.rip
    2.rip题目:函数溢出,熟悉解题思路过程将下载下来的pwn1文件内容,放到ubuntu中checksec一下ubuntu中checksec文件从图上可以看出它是一个64位程序,仅开启了栈不可执行保护,没有打开NX防护(堆栈可执行),NoPIE.下面我们用IDA打开这个文件F5打开这个文件后,会有这样一
  • 2024-05-18表达式树求值的空间复用
    回忆一致\(\mathsf{NC}^1\)电路是说一个\(O(\logn)\)深度,可以由对数空间Turing机生成的布尔电路,这个\(O(\logn)\)层的电路暴力展开就是一颗\(n^{O(1)}\)大小的表达式树.反过来,对于任何一颗表达式树,我们也可以用树分治的方法将其对数空间规约到一个\(O(\log
  • 2024-05-17P8684 [蓝桥杯 2019 省 B] 灵能传输 题解
    题目传送门本题涉及到了\(3\)种算法:前缀和,排序以及贪心。(1)前缀和本题实际上要求通过某种灵能传输可以使得该序列的最大值最小。而由前缀和可知,当某一个前缀和序列保持有序(或前缀和序列表示的函数单调)时,其\(s[i]-s[i-1]\)的最大值可以达到最小。通过对几个样例的观察
  • 2024-05-17ORACLE 物理读 逻辑读 一致性读 当前模式读区别
    转自:https://www.cnblogs.com/kerrycode/p/5940626.html在ORACLE数据库中有物理读(PhysicalReads)、逻辑读(LogicalReads)、一致性读(ConsistantGet)、当前模式读(DBBlockGets)等诸多概念,如果不理解或混淆这些概念的话,对你深入理解一些知识无疑是一个障碍,但是这些概念确实挺让让人犯
  • 2024-05-06第七章:Snooping Coherence Protocols
    chapter7:snoopingcoherence协议简介窥探(Snooping)缓存一致性协议是最早被广泛使用的协议并被沿用至今。它有较短的一致性传输延时以及相对于目录(directory)协议更简单的设计。窥探协议通过要求对一个缓存行的所有要求按顺序到达,实现了所有分布式缓存控制器都能正确更新共同
  • 2024-04-14gets 不安全,请使用 fgets
    结论:为了安全考虑,用fgets(b,sizeof(b),stdin)替代gets(b)下面是gets.c的代码#include<stdio.h>intmain(){charb[40];gets(b);printf("%s",b);return0;}使用gcc10.2.1进行编译(gccgets.c-ogets)会提示warning:implicitdeclarationof
  • 2024-03-13数据结构进阶
    区间数颜色LOJ#3751.[SDOI2009]HH的项链给定长度为\(n\)的序列,\(m\)次询问\([l,r]\)内有多少不同的元素。\(n\le5\times10^4\),\(m\le2\times10^5\)。区间数颜色是莫队算法的经典应用,可以用莫队在\(\Theta(m\sqrtn)\)内解决。P1972[SDOI2009]HH的项链(数据加
  • 2024-03-12“c语言+结构体+链表”实现名片系统
    //名片系统//第一步:创建名片姓名:年龄:(23)手机号:(默认为171****3422)地址:河南洛阳// 公司:tzh职务:学员//输出名片信息////第二步:删除已存在的名片////第三步:修改信息#可指定修改内容////第四步:查询信息#可查询相关姓名对应的信
  • 2024-03-09CF387B George and Round 题解
    考虑采用双指针法解决此题。首先需要对\(a,b\)数组排序,并且维护两个指针\(l,r\),分别指向\(a,b\)两个数组中的元素。接着循环移动\(r\)指针,每次都尝试匹配\(a_l\)和\(b_r\):若\(a_l\leb_r\),则说明\(a_l=b_r\)或可以采用减少\(b_r\)的方式使\(a_l=b_r\),这
  • 2024-03-04p7914-solution
    P7914Solutionlink先考虑Subtask\(4\)。设\(dp_i\)表示长度为\(i\)的方案数,按题目定义转移:AB,ASB:\(\displaystyledp_n\getsdp_n+\sum_{i=1}^{n-1}\sum_{j=0}^kdp_i\timesdp_{n-i-j}\)(A):\(\displaystyledp_n\getsdp_n+dp_{n-2}\)(SA),(AS):\(\displa
  • 2024-02-28cf1491h-solution
    CF1491HSolutionlink考虑分块。按照点的编号分块,维护\(b_i\)表示\(i\)往上跳遇到的第一个与\(i\)异块的点。对于散块修改,直接暴力重构整块的\(b\)。重构方式是,如果\(a_i\)与\(i\)异块,则\(b_i\getsa_i\);否则\(b_i\getsb_{a_i}\)。对于整块,打标记维护整体减了多
  • 2024-02-28cf1487g-solution
    CF1487GSolutionlink想一想没有字符的限制怎么做。首先,没有长度大于一的奇回文串显然等价于没有长度为\(3\)的回文串。也就等价于\(\foralli\in[1,n-2],s_i\not=s_{i+2}\)。那么在没有限制的情况下,我们确定好了前两位字符,后面的\(n-2\)位各有\(25\)种字符可选。方
  • 2024-02-28cf1332f-solution
    CF1332FSolutionlink设\(dp_{u,0/1,0/1}\)表示在\(u\)的子树中,节点\(u\)与它父亲的边是否在导出子图中,点\(u\)是否在独立集中,的方案数。\[dp_{u,0,0}\gets\prod_v(dp_{v,0,0}+dp_{v,1,0}+dp_{v,0,1}+dp_{v,1,1})\]\[dp_{u,1,0}\gets\prod_v(dp_{v,0,0}+dp_{v,1,0}+
  • 2024-02-21P8329 [ZJOI2022] 树
    直接求是困难的,所以考虑容斥将所求容斥为两部分:每个结点至少在一棵树上为叶子的方案数-至少有一个结点在两棵树上都为叶子的方案数。考虑DP,设\(f_i(x,y)\)表示\([1,i]\)中是第一棵树的非叶子的结点数为\(x\),\([i+1,n]\)中是第二棵树的非叶子的结点数为\(y\)时的
  • 2024-02-07WC2024
    最简单的一届WC。P10143[WC2024]代码堵塞难度:1拆贡献,考虑\(i\)选\(0\)还是\(1\):如果\(i\)选\(0\),那么它前面选\(0\)的加上它不超过\(T\)。如果\(i\)选\(1\),那么它后面选\(0\)的加上它和它前面的所有数不超过\(T\)。随便背包可以做到\(\mathcal{O}(nT
  • 2024-02-01CF1919 C. Grouping Increases
    给定一个长为\(n\)的序列\(a\),你需要将该序列恰好分成两个子序列\(s,t\)。定义一个长为\(m\)的序列\(b\)的代价为\(\displaystylep(b)=\sum_{i=1}^{m-1}[b_i<b_{i+1}]\),求\(p(s)+p(t)\)的最小值。每个测试点\(t\)组测试用例。思路贪心。可以发现答案的贡献只与
  • 2024-01-29123
    A给定\(n\)个区间\([a_i,b_i]\)。若将所有有交集的区间合并,最后有多少区间。按\(a_i\)排序。记录当前正在尝试合并的区间的左右端点\(l,r\)。初始\(l=a_1,r=b_1\)。枚举\(i=(2,3,\dots,b)\)。此时:如果\(r\gea_i\):合并。实现上就是\(l\)不变,\(r\g
  • 2024-01-27CF1174E Ehab and the Expected GCD Problem
    EhabandtheExpectedGCDProblemLuoguCF1174E题目描述\(p\)是一个排列,定义\(f(p)\):设\(g_i\)为\(p_1,p_2,\cdots,p_i\)的最大公因数(即前缀最大公因数),则\(f(p)\)为\(g_1,g_2,\cdots,g_n\)中不同的数的个数。设\(f_{max}(n)\)为\(1,2,\cdots,n\)的所有排
  • 2024-01-20LG10026
    看完题目后,发现直接对\(a\)模拟操作的情况过多,不好处理。但如果对\(n\)进行逆向操作,似乎可以在很少步数内就变为\(1\)。我们大胆猜想,用最少的步数使\(n\)变为\(1\),再考虑如何处理多余的次数(若次数不足则直接无解)。先列出转换后的操作:\(n\getsn+1\);\(n\getsn\div2
  • 2024-01-14ARC151D Binary Representations and Queries
    ARC151DBinaryRepresentationsandQueries题目链接:ARC151DBinaryRepresentationsandQueries非常好思维题。思路首先我们会发现每个操作都是\(\frac{n}{2}\)的\(A_i\),给另外\(\frac{n}{2}\)的\(A_j\)的增加。这题直接去维护每个操作时间复杂度会开心的笑。所以
  • 2023-12-31P10033 「Cfz Round 3」Sum of Permutation
    原题链接基础赛唯一写了的题,因为我喜欢构造!事实上的确有点麻烦了,应该会有更好的做法。但是自我感觉这个思维很连贯,因为这就是我做题时思路的写照。记\(p_{pos1}=1,p_{posn}=n\)。首先可以构造\(a_i\getsp_i+1\)这样一定满足第二个限制,但是当\(p_i=n\)时不满足第一个限
  • 2023-12-25getchar()、putchar()、gets()、puts()、scanf()
    getchar()获取单个字符putchar()输出单个字符gets()获取一个字符串puts()输出一个字符串scanf()获取数据相对于getchar()函数,当scanf()遇到空格时,就会自动结束getchar()不会以上头文件<stdio.h>getchar()--putchar()#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intmain(){ charsex[5];