• 2024-10-24数算选做
    线性数据结构中缀表达式的值#include<cstdio>#include<iostream>#include<stack>#include<cmath>usingnamespacestd;intT;boolisNumber(charx){ if(x<='9'&&x>='0')returntrue; returnfalse;}str
  • 2024-09-1820240918:DP选做
    本文为@A_zjzj《dp专题》学习笔记。转移性质Lanterns题意:\(n\)个灯笼拍成一排,第\(i\)个灯笼具有\(p_i\)的亮度。每个灯笼要么朝向左照亮\([i-p_i,i-1]\),要么朝向右照亮\([i+1,i+p_i]\)。寻找一种方案,为所有的灯笼定向,使得每一个灯笼被至少一个其他灯笼照
  • 2024-09-0420240904:字符串选做
    P4555[国家集训队]最长双回文串题意:给定字符串\(s\),找到他最长双回文串\(t\)的长度。双回文串定义为存在一个\(i>1\)使得\(t[1,i)\)和\(t[i,n]\)都是回文串。\(\verts\vert\le10^5\)。二分哈希求出所有回文中心的半径,设以\(i\)为中心的最长回文串为\([l_i,
  • 2024-08-301-1 Markdown学习(选做)
    #Markdown学习##1.哪些内容是你掌握的?哪些内容是你没有掌握的?使用AI推荐的工具或者你喜欢的工具实践一下没有掌握的内容。我掌握的语法:-#+空格标题,#的数量代表几级标题-Markdown区分段落的方式是通过空行。在Markdown中,连续的文字会被视为同一段落,而空行则表示新段落的开
  • 2024-08-26Markdown学习(选做)
    一.已掌握1.基本语法(1)标题:使用#符号表示标题,#的数量表示标题的级别,最多支持六级标题。(2)段落:Markdown使用空行来分隔段落。(3)强调:使用*或_符号表示强调,一个符号表示斜体,两个符号表示加粗。例如:斜体加粗(4)列表:序号姓名年龄职业1张三30软件开发2
  • 2024-08-1320240813:组合计数选做
    P3214[HNOI2011]卡农题意:\(m\)个集合,\(n\)种元素,求集合间互不相同且每种元素出现偶数次的方案数。题目等价于从\(1\sim2^n-1\)里选出\(m\)个不同的数,使他们异或和为\(0\)。不妨对每个数标号,由于互不相同,最后除以\(m!\)即可。设\(f_i\)表示前\(i\)个数异或
  • 2024-06-16MD5哈希长度延展攻击(选做)
    任务详情任务描述:在一个使用MD5哈希算法的系统中,管理员使用了一个密钥k和命令cmd的组合来生成每个命令的签名:hash(k||cmd)。你已经获得了一个允许查看文件的命令cmd=viewfile和对应的签名h,但你希望通过哈希长度延展攻击,生成一个新的签名,该签名能够让你执行删除文件的命令(删除文
  • 2024-06-09阅读习惯2(选做)
    1.参考书单https://weread.qq.com/misc/booklist/3107758_7sb8Fs2Hv,从中选择阅读,养成阅读习惯2.提交微信读书(或其他平台)目前的与上面书单有关的读书数据(总时长,册数,笔记数等)的截图3总结本学期的收获,新增的总时长,册数笔记等,谈谈本学期收获,养成良好的阅读习惯了吗?会一直坚持阅读
  • 2024-06-07AT选做
    ABC265G.012Inversion延迟线段树每个点需要维护以下信息:\(0/1/2\)的个数有序对\((0,0)\),\((0,1)\),\((0,2)\),\((1,0)\),\((1,1)\),\((1,2)\),\((2,0)\),\((2,1)\),\((2,2)\)的个数对于操作二其实就是延迟线段树里的函数\(F\)代码实现#include<bits/stdc++
  • 2024-05-30杂数据结构选做
    杂数据结构选做持续更新ing...更新多少取决于我卷了多少似乎都是比较基础的东西,但是我数据结构太菜了,没办法╮(╯_╰)╭#9016.CodeChefMINXORSEG有两种做法,我敲的后一种第一种先不考虑范围问题,考虑现在有三个点\(u,v,w\),若它们的\(lcp\)为\(l\),那么考虑第\(l+1\)位,根据
  • 2024-05-21Atcoder 题目选做(五)
    \(\text{ByDaiRuiChen007}\)1.[ARC159E]DifferenceSumQueryProblemLink给定\(n,m\),定义\(x\in[1,n]\)的深度\(f(x)\)为:初始\([l,r]=[1,n]\)。第\(i\)次操作求出\(l,r\)按\(a_{i\bmodm}:b_{i\bmodm}\)的比例的中点\(mid\)。如果\(x=mid\),那么
  • 2024-05-21Atcoder 题目选做(六)
    \(\text{ByDaiRuiChen007}\)1.[ARC162E]StrangeConstraintsProblemLink给定\(a_1\sima_n\),求有多少\(b_1\simb_n\)满足:\(b_i\in[1,n]\),且\(i\)和\(b_i\)的出现次数均不超过\(a_i\)。数据范围:\(n\le500\)。设\(\gek\)的\(a_i\)有\(c_k
  • 2024-05-21Atcoder 题目选做(四)
    \(\text{ByDaiRuiChen007}\)1.[AGC059C]GuessingPermutationforasLongasPossibleProblemLink给定\(\dfrac{n\times(n-1)}2\)个\([1,n]\)中的二元对的顺序,求有多少个\(n\)阶排列\(P\)使得按顺序询问到每个\((u,v)\)之前无法确定\(P_u,P_v\)大小关系
  • 2024-05-18Atcoder 题目选做(二)
    \(\text{ByDaiRuiChen007}\)*1.[ARC145F]ModuloSumofIncreasingSequencesProblemLink给定\(n,m,p\),对于所有\(r\in[0,p)\)求有多少长度为\(n\),值域\([0,m]\)的单调不降序列数组在\(\bmod\p\)意义下的序列和为\(r\)。数据范围:\(n,m\le10^6,p\le500\)
  • 2024-05-17Atcoder 题目选做(一)
    \(\text{ByDaiRuiChen007}\)1.[ARC080F]PrimeFlipProblemLink数轴上有\(n\)个点\(a_1\sima_n\)的颜色是黑色的,其余颜色为白色。每次操作可以选连续\(p\)个位置反色,其中\(p\)必须是奇素数。求全部位置染白的最小操作次数。数据范围:\(n\le100,a_i\le10^7\)
  • 2024-05-09AGC 选做
    AGC017EJigsaw将离地\(0\)长度\(a\)的看做\(a\),离地\(a\)的看做\(-a\),则两个积木能匹配相当于左积木的右边和右积木的左边互为相反数。方便起见,将所有积木左边取反,看做相等匹配。我们考虑放到图上,一个左边为\(a\)右边为\(b\)的积木会让图上从\(a\tob\)有一个有
  • 2024-04-14MD5哈希长度延展攻击(选做)
    任务描述:在一个使用MD5哈希算法的系统中,管理员使用了一个密钥k和命令cmd的组合来生成每个命令的签名:hash(k||cmd)。你已经获得了一个允许查看文件的命令cmd=viewfile和对应的签名h,但你希望通过哈希长度延展攻击,生成一个新的签名,该签名能够让你执行删除文件的命令(删除文件的命令为
  • 2024-04-14MD5哈希长度延展攻击(选做)
    MD5哈希长度延展攻击(选做)任务任务描述:在一个使用MD5哈希算法的系统中,管理员使用了一个密钥k和命令cmd的组合来生成每个命令的签名:hash(k||cmd)。你已经获得了一个允许查看文件的命令cmd=viewfile和对应的签名h,但你希望通过哈希长度延展攻击,生成一个新的签名,该签名能够让你执行
  • 2024-04-14MD5哈希长度延展攻击(选做)
    一、理解长度扩展攻击(lengthextensionattack),是指针对某些允许包含额外信息的加密散列函数的攻击手段。对于满足以下条件的散列函数,都可以作为攻击对象:①加密前将待加密的明文按一定规则填充到固定长度(例如512或1024比特)的倍数;②按照该固定长度,将明文分块加密,并用前一个
  • 2024-04-12ARC 选做
    byTheBigYellowDuck现阶段的水平,大概只能做D及以前的题了。ARC104[ARC104A]PlusMinus可以得到答案为\(\dfrac{A+B}{2}\)和\(\dfrac{A-B}{2}\)。时间复杂度\(\mathcal{O}(1)\)。提交记录[ARC104B]DNASequence对每种字符预处理前缀和。枚举子串\([l,r]\),只需
  • 2024-04-12CF 1900 选做
    byDuck.CF1012BChemicaltable双倍经验eJOI2018同名题目。经典套路题。我们把行号和列号建成二分图,那么这个连边条件可以看作,\((r_1,c_1),(r_1,c_2),(r_2,c_2)\)之间有边后就会自然导致\(r_2,c_2\)连通。最后的目标是让所有点联通。并查集维护连通性,答案就是连通块数
  • 2024-04-12CF 1800 选做
    byTheBigYellowDuckCF1119DFretsOnFire对于查询\([l,r]\),我们把\(n\)行的信息看成\(n\)条线段\([s_i+l,s_i+r]\),答案就是这些线段并的长度。令\(L=r-l\),这些线段都可以平移成\([s_i,s_i+L]\)而答案不变。把线段按照\(s_i\)排序,考虑覆盖每个线段起始位置之间的
  • 2024-03-22简单模拟选做
    海港重点在于想到我们不关心每个人是第几批次,不关心同一时间同一国籍有几个人,所以可以只储存去重后的每个人的国籍和时间信息。使用queue和map和pair,stl就是好用(#include<iostream>#include<cstdio>#include<queue>#include<map>usingnamespacestd;constintN=200000
  • 2024-03-21串串选做
    KMPOI-wiki上有一个很不错的kmp做法,就是直接把模式串与文本串用特殊符号链接,然后求前缀数组即可感觉vector可能更舒服(?)#include<iostream>#include<cstdio>#include<cstring>#include<vector>usingnamespacestd;constintN=2000000;chara[N],b[N];vector<char>c
  • 2024-03-17安全设计原则(选做)
    安全设计原则(选做)在软件开发和系统架构设计中,安全设计原则是一组指导方针,旨在帮助开发者和设计师构建更安全的系统。这些原则可以减少系统的脆弱性,提高对抗潜在威胁的能力。通过各种资料,尽可能多的搜集安全原则。一、给出所有你能找到的安全原则的名称,内容和来源信息(图书名称,网