- 2024-08-072024.8.7 模拟赛题解
T1过于简单,不必阐述。T2给定一个仅包含\(A\)和\(P\)的字符串,每次操作可以删除相邻的\(AP\)或者\(PP\),问字符串最后的最小长度。$Sol:$为求最值问题,考虑贪心。先给出考场做法。发现若干的\(P\)是一定能合并掉的,于是贪心策略,就是如何最小化\(A\)的个数。对于每个
- 2024-08-05AGC046C 题解
blog。好菜啊,不会这题,来写个题解/kel。很难直接做,先找一点性质:操作只改变相对顺序,而总数不变。这启示我们记录每个\(0\)前面的极长\(1\)连续段长度。记第\(i(1\lei\leC)\)个\(0\)对应长度为\(a_i\),就存在下面的等价表述:每次操作可以选定\(i,j(1\lei<j\leC)\),
- 2024-07-31学习日记:一维字符型数组
目录1.格式2.字符串长度3.字符数组的输入输出3.1gets函数3.2puts函数3.3scanf函数3.4printf函数4.字符串处理函数4.1strlen函数(计算数组长度)4.2strcpy函数(复制字符串)4.3strcat函数(拼接字符串)4.4strcmp函数(比较字符串)1.格式数据类型数组名[数
- 2024-07-27ABC265F 题解
题面\(O(nd^2)\)考虑\(f(i,j,k)\)表示dp到第\(i\)维,距离\(p,q\)曼哈顿距离\(j,k\)的方案数。考虑朴素转移:设\(dis=|p_{i+1}-q_{i+1}|\)。\[\begin{aligned}f(i+1,j+t,k+dis-t)&\getsf(i,j,k)&(0\leqt\leqdis)\quad&(1)\\f(i+1,j+d+t,k+t)&\ge
- 2024-07-25CF1015F 题解
题面考虑这样的匹配问题,可以想如何确定第一次匹配,这样可以不重不漏地计数。考虑dp的时候同时维护有几个括号没有匹配,匹配到\(s\)的第几位,所以令\(f(i,j,k)\)表示dp到(要计数的序列的)第\(i\)个字符,有\(j\)个左括号没有匹配,匹配到\(s\)的第\(k\)位。转移很容易,考
- 2024-07-25Temperature 题解
前言题目链接:洛谷;SPOJ;Hydro&bzoj。题意简述有一个长度为\(n\)的序列,每个位置值的范围为\([L_i,R_i]\)内,求原序列可能的最长不降子串长度。题目分析尝试找一些性质。发现,连续一段合法的区间,都能分成若干真正参与最长不降子串,以及紧跟着的若干包含\(L_i\)的位置。下图
- 2024-07-13C基础day10
#include<myhead.h>#defineMax_Size100//strlen函数intmy_strlen(constchar*str){ intlen=0; while(*str++!='\0') { len++; } returnlen;}//strcpy函数voidmy_strcpy(char*dest,constchar*src){ while(*src)//遍历src将src赋值给de
- 2024-07-06scanf,getchar,gets知识详解
1.scanf scanf用于输入数据,它处理不了空格键和回车键(enter),两者其实都是字符,键盘上每一个键位都是一个字符,空格对对应'\0',回车对应'\n'。,scanf将处理不了的这两种键放入缓冲区。缓冲区类似数据结构中的队列,一边只负责进,一边只负责出。顺序进出。(1)当数据为单个字符时:
- 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\)时的