- 博客(1076)
- 收藏
- 关注

原创 我的愿望是:世界和平!(SEU网安er进)
在工位做CTF还被师兄围观(具体情境参考唐僧师徒“你醒了.jpg”)身为蛋糕小丑ESFJ,我希望大家都能够愉快的度过自己的大学生活。包括SEU网安专业各课程的实验代码和报告。最近被助教工作折磨的不行。
2024-03-01 11:48:57
985
4

原创 抱歉,我又可以了。。。
emmmmmm。。。好久不见一年半的时间,很长让我从一个完完全全的OIer变成了一个真真正正的学术狗这是我在AFO之后的第一篇blog,总感觉有很多话想说,不知道怎么开口。。。首先,感觉最对不起的就是一直在看我blog,默默支持我的同学们很长时间的停更,今天失踪人口回归~为什么选择今天?七月底的时候,舒老师给我发信息,说是2019毕业界需要找几个人来学校为学弟学妹(竟然还有学妹?!)...
2019-08-05 15:22:22
1150
9

原创 OI回忆录&&战友介绍
在没有忘记之前,我们需要一种方式记录我们的曾经——题记OI这条道路,荆棘密布,只有勇士才能踏上这条不归路而不至于无功而返 曾经 有勇士斩断荆棘救出沉睡的大自己100岁的公主,有骑士杀死恶龙迎娶高塔上的已经快凉了的佳人,有牧羊人打败巨人赢得万众敬仰假的。。。 OIer,只是少了童话色彩的战士 显然,并不是所有人都有屠龙的资质。。。博主为什么这么中二??!!好吧,不中二了...
2018-04-08 13:45:27
5341
4

原创 省选复习资料の任意门
早做准备(不想写题的时候就整理一下) AFO之前,也要精彩一场吧 (っ*CДT)و︵☆ 这里提供复习的任意门dp须知斯坦纳树 CDQ+dp 斜率优化&&四边形不等式 LIS计数 数位dp 极大子矩阵1,极大子矩阵2 树形dp 双元限制的dp 1d1d优化dp 关于dp的良好建议dada的总结,会让你觉得什么也没学过数论须知基础数论 ...
2018-04-05 17:00:37
737

原创 SAM的性质与应用
鸣谢clover_hxy学姐之前介绍过SAMSAMSAM的构建 打算做点题练习一下,但是找到SAMSAMSAM的裸题之后,根本不知道怎么用SAMSAMSAM搞 所以就来总结一下SAMSAMSAM的应用找不同的子串的个数方法一:用dfs处理处每个点能扩展出多少个字符串sum[x]=∑sum[t[x].son[i]]+1sum[x]=∑sum[t[x].son[i]]+1sum[x...
2018-01-28 16:43:42
1257

原创 char类型函数(C++入门?)
前几天测试,本来想用char自带的函数 然而发现自己并不是很会。。。1.0 复制1.1 strcpy原型:char* strcpy(char* dest, char* src); 功能:把从src地址开始且含有 ‘\0’结束符的字符串复制到以dest开始的地址空间 返回指向dest的指针 说明: src 和 dest所指内存区域不可以重叠且dest必须有足够的空间来容纳
2018-01-08 17:50:00
16520
1

原创 反演中的常见公式
完美的总结都是为了偷懒GCD的计数① ② ③ GCD之和① ② LCM之和① ② n是质数: n不是质数: n的非平方质因子i: n的其他质因子i(即n=i*p且i|p): 其它常见公式① 1~n中所有与n互质的数之和 ② 约数个数 ③ i^2前缀和
2017-12-30 10:27:56
3142

转载 特殊符号+运算优先级
几何符号⊥ ∥ ∠ ⌒ ⊙ ≡ ≌ △代数符号∝ ∧ ∨ ~ ∫ ≠ ≤ ≥ ≈ ∞ ∶运算符号× ÷ √ ±集合符号∪ ∩ ∈特殊符号∑ π(圆周率)推理符号|a| ⊥ ∽ △ ∠ ∩ ∪ ≠ ≡ ± ≥ ≤ ∈ ← ↑ →.....................
2017-10-08 17:46:44
3981

原创 数论基础(浅谈数论的部分实现)
最近写到一些基础数论题, 发现一个可怕的事实 基础数论的理论我都懂,但是连最基础的板子都有可能敲错 所以特意停下手中的题,进行基础数论的实现First.欧几里得(辗转相除)int gcd(int a,int b){ int r=a%b; while (r) { a=b;b=r;r=a%b; } return b;}...
2017-09-12 21:20:09
1751
原创 运算符重载 ( ++的重载实例)
我们这里选择重点讲解前置/后置自增的重载前置/后置自减就是一个道理啦前置自增 ++num前置自增:先自增再取值重载前置自增允许有两种形式成员函数:num.operator++()Data &operator++();全局函数:operator++(num)Data &operator++(Data &);需要提醒大家的是,在重载前置自增的时候,...
2024-03-13 16:26:36
588
原创 正式成为研究生一个月就可以改变一个人
人不一定要有一个“最好的朋友”吧。我都习惯了,从小我就一直没有1v1的“好朋友”,本人挺e,有亲近的朋友,也没有经常谈恋爱,就是不知道为什么没有好朋友?好久以前我也在98水过一贴吐槽这个,有个人回我说,青春期亲密且排他的朋友,是稚嫩爱情的一种投射,我觉得有些道理。
2023-10-26 20:43:10
801
原创 从SEU到ZJU——研究生新手村冒险随记
其实之前一直在打听ZJU的导师情况,反复翻看网安学院的官网,但迟迟没有确定自己的“心动导师”半个小时后,我破天荒地收到了新手村的第一封“秒回”邮件,L老师出现在了我的微信好友列表中。我和其他面试了ZJU的同学打听之后,发现问我的问题确实友好很多(也可能是我的心里作用)拟录取名单公示之前,L老师还宽慰我,看过了几个评审老师给我的分数,都是高分,不用担心。现在的我,坐在玉泉则通楼的工位上,室外的高温和空调的低温都让我瑟瑟发抖。面试结束后就立刻和SJTU的导师发了邮件,但得到的还是些不痛不痒的回复。
2023-07-27 13:54:38
1886
2
原创 luoguP2756 飞行员配对方案问题(最大流)
很典型的二分图匹配问题外籍飞行员作为X部,英国飞行员作为Y部源点向X部连边,容量为1Y部向汇点连边,容量为1X部与Y部之间连边,容量为1狂WA不止原来是因为方案输出我这里用了一个数组记录(外籍飞行员,英国飞行员)边的编号数组默认值为0dinic之后判断边的容量是否为0注意还要判断数组中记录的编号是否有效(是否是默认值)注意bfs和dfs的时候,需要判断当前边是否还有容量......
2022-06-29 10:44:43
925
原创 PAT (Advanced Level) 1105 Spiral Matrix——蛇形矩阵
题目传送门将序列从大到小排序,逆时针蛇形排列成一个矩阵确认矩阵的行和列,从sqrt开始依次尝试之后按照四个方向填充矩阵即可
2022-06-02 20:53:34
319
原创 PAT (Advanced Level) 1156 Sexy Primes——素数判别
题目传送门注意素数判别时的特殊情况:if (n<=1) return 0;#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#define LL long longusing namespace std;int isPrime(LL n) { if (n<=1) return 0; fo
2022-05-31 18:54:58
166
原创 PAT (Advanced Level) 1103 Integer Factorization——暴搜剪枝+KSM
题目传送门类似数字分解的暴搜枚举第t个数字时,取值不小于第t-1个数字取值的最大值x:若第t个数字为x+1,剩下的k-t位都为1,累加结果会超过n加上了快速幂的代码复习一下暴搜的模板不要写错啊喂QwQ# 暴力搜索长度位n的序列解dfs (int t, ...) { if (t > n) { # 记录答案 return; } for (第t位的所有可能取值) { # 记录第t位的取值 dfs(t+1, ..
2022-05-30 20:49:47
170
原创 PAT (Advanced Level) Practice——树合集(50题合影留念)
1147 Heaps抓住完全二叉树的性质:某个节点编号为ididid,左儿子为2∗id2*id2∗id,右儿子为2∗id+12*id+12∗id+1利用这条性质可以精准定位到节点的左右儿子之后正常进行大小根堆的判断和后序遍历即可Tip所有树上的操作,最关键的是确定结构,即确定左右儿子换句话说,只要我们能够确定儿子,就可以对树直接进行操作,建树就变得无关紧要了#include<iostream>#include<cstdio>#include<cstdlib
2022-05-29 11:23:13
178
原创 PAT (Advanced Level) 1119 Pre- and Post-order Traversals——树的前序和后序遍历
题目传送门题目分析我们接着上面的分析进一步讲解1 2 3 4 6 7 52 6 7 4 5 3 1虽然避免不了先序第一个仍然等于后序倒数第一个但是,先序的第二个结点值2和后序的倒数第二个结点值3是不同的,这将导致2只能是左儿子,3只能是右儿子且3一定是右子树的根节点,在前序遍历中找到3,之前的部分就一定是左子树节点按照这个思路划分左右子树即可如果先序的第二个结点值和后序的倒数第二个结点值相同那么剩下的所有节点都属于同一个子树,且不能区分出到底是左子树还是右子树,即这棵树不唯一#in
2022-05-28 17:47:00
128
原创 PAT (Advanced Level) 1107 Social Clusters——题意理解+并查集
题目传送门这道题的题意有点模糊,样例用了很久才搞明白是怎么回事题目大意:给出每个人的爱好,有相同爱好的人处于一个社交网络,问有多少个社交网络,并从高到低给出每个社交网络人数。其实题目中隐含着这样的情况:如果A和B有相同的爱好,B和C有相同的爱好,但是A和C没有相同的爱好那么A,B和C也属于同一个社交网络可以使用并查集解决我们可以从hobby入手在输入时,如果发现(第j个人)某个hobby之前出现过(第i个人),那么这两个人就属于一个社交网络按照题目给出的样例:2,4,6,8属于一个社
2022-05-27 21:30:03
145
原创 PAT (Advanced Level) 1137 Final Grading——string+map+四舍五入
题目传送门需要注意题目中隐含的条件只输出合格学生的成绩合格者需要平时分>=200(900),最终成绩>=60(100)最终成绩GGG的计算方法如果Gmid>GfinalG_{mid}>G_{final}Gmid>Gfinal,则G=0.4∗Gmid+0.6∗GfinalG=0.4*G_{mid}+0.6*G_{final}G=0.4∗Gmid+0.6∗Gfinal否则G=GfinalG=G_{final}G=GfinalGGG must be ro
2022-05-26 20:57:39
234
原创 PAT (Advanced Level) 1152 Google Recruitment——Prime
题目传送门一个简单的素数判断,不要写错啦测试点2和5考察的是出现前导零的情况:Note: the leading zeroes must also be counted as part of the K digits. For example, to find the 4-digit prime in 200236, 0023 is a solution. However the first digit 2 must NOT be treated as a solution 0002 since t
2022-05-26 11:11:59
245
原创 PAT (Advanced Level) 1160 Forever——gcd+prime
题目传送门终于遇到了数论题题目不难但是略微复杂A(K位)是Forever number当且仅当A每一位的数值之和为mA+1每一位的数值之和为nm和n的最大公约数是大于2的素数dfs枚举A的每一位,通过m(A每一位的数值之和)剪枝需要注意,在输出时需要按照n排序,若n相等则按照A排序#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#inclu
2022-05-20 17:02:19
239
原创 PAT (Advanced Level) 1112 Stucked Keyboard——规律巧思
题目传送门这道题我们考虑:满足什么条件该字符一定不是stucked keyboard如果一个stucked keyboard,那么每次按下ta,都会出现k个同样的字符分段观察每一个字符,如果重复出现的次数不是k的整数倍,那么ta就肯定是一个正常按键注意需要按照检测到的stucked keyboard顺序输出in the order of being detected#include<iostream>#include<cstdio>#include<cstd
2022-05-20 16:04:51
210
原创 PAT (Advanced Level) 1123 Is It a Complete AVL Tree——平衡二叉树+完全二叉树判断
题目传送门之前我们写过完全二叉树的判断实际上还有一个更简单的判断方法(这也是完全二叉树的一个性质)判断一棵树是否为完全二叉树,可以给每个节点编号例如某个节点编号为id,它左儿子为2id,右儿子为2id+1如果最大的编号为n,即为完全二叉树平衡二叉树的板子,要好好背过啊#include<iostream>#include<cstring>#include<cstdio>#include<cstdlib>using namespace s
2022-05-19 20:35:17
289
原创 PAT (Advanced Level) 1111 Online Map——最短路 ( Dijkstra+dfs ) * 2
题目传送门题目不难,就是麻烦我一开始想只写一个dijkstra和dfs就解决两个最短路问题结果是又复杂又bug最后拆分成了两个dijkstra+dfs才A掉Tip根据实际情况,决定是否复用函数这道题很显然就是个杂烩题,对于任何一种最短路,我们已经有了很完备的算法这种情况下就不要破坏经验得到的完备解法之前遇到的神仙模拟题,本身没有完备解法,且结构有极高的相似性,所以可以使用集成度较高的解法#include<iostream>#include<cstdio>#in
2022-05-18 17:43:32
234
原创 PAT (Advanced Level) 1117 Eddington Number——真的会被自己过于复杂的脑洞打败
题目传送门看到题目我首先想到了之前做过的一道题二分+树状数组解决中位数问题按照同样的思路迅速码了,提交TLE+WA,于是开始怀疑人生确认一下树状数组的时间复杂度:对含有n个元素的数组a[1],...,a[k],...,a[n]a[1],...,a[k],...,a[n]a[1],...,a[k],...,a[n]:求出第iii个到第jjj个元素的和,sum=a[i]+...+a[j]sum=a[i]+...+a[j]sum=a[i]+...+a[j]进行j−i+1j-i+1j−i+1次加法
2022-05-17 17:16:26
171
原创 PAT (Advanced Level) 1082 Read Number in Chinese——神仙模拟题
题目传送门回忆我们学习读数的思路,每四位为一组:(个)十百千什么时候需要读“零”呢?1000100110101100#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<string>#include<vector>using namespace std;string radix[4] = { "","S
2022-05-17 14:37:43
149
原创 PAT (Advanced Level) 1131 Subway Map——堆优化Dijkstra+dfs
题目传送门我认为,这道题的难点在于路径输出我一开始的思路,是对每一个站点记录ta在哪一条地铁线上这样就会带来一个问题:换乘点要如何处理?我们换一个思路,从路径出发,记录到达每一个站点时经过了几号线输出是只要发现这个站点的前后地铁线不同,就认为ta是一个换乘点每发现一个换乘点,就输出一条路径信息终点站也可以视为一个换乘点,我们将终点站之后的地铁线设置为0,就可以实现统一的输出了面对这种最短最优路径问题,我首选dijkstra+dfs的方法,结果TLE了使用朴素的dijkstra算法会超时:O
2022-05-16 16:57:23
201
原创 PAT (Advanced Level) 1016 Phone Bills——记录匹配+分段函数
题目传送门这道题有几个关键点记录匹配按时间排序后,每一个on-line记录与同名的最近的off-line记录匹配Each on-line record is paired with the chronologically next record for the same customer provided it is an off-line record.不能匹配的记录,全部视为无效记录Any on-line records that are not paired with an off-l
2022-05-15 11:42:36
138
原创 PAT (Advanced Level) Practice 1158——并查集
题目传送门题目中的条件比较细碎suspect需要满足以下所有条件给多于K个不同的人打过短电话给不同的人打短电话,收到回拨的比例不高于20%短电话指两人的总通话时长不超过5分钟如果suspect A和suspect B之间互相通信,那么A和B属于一个团伙判断suspects是否属于一个团伙,可以使用并查集或者dfs这里我选择了代码比较简单但是我并不熟悉的并查集如果两个suspects之间存在会话,则将两者合并为一个集合注意在选择并查集father的时候需要选择编号较小的那一个按照fa
2022-05-12 19:57:48
274
原创 PAT (Advanced Level) Practice 1010——二分+long long
题目传送门简单计算一下就可以发现,数据肯定要用long long存储未知进制数的最小进制取决于出现过的最大位未知进制数的最大进制却不是36!!!而是确定进制数(num1)转换为十进制后的结果。毕竟X进制的数不一定出现值为X-1的位结果存在单调性,即进制越大,转换得到的结果越大,所以可以用二分来降低时间复杂度二分查找过程中若num2 > num1 || num2 < 0,都作为进制取值过大的条件(num2<0说明进制太大,导致溢出成为负数)从前辈的blog上找到了一个超强的样
2022-05-11 15:46:28
220
原创 信息系统安全实验——Week 10
T1.伪造IP题目描述这道题目主要考查的是如何伪造HTTP请求头中的IP信息,这里我们推荐使用firefox自带的simple-modify-headers插件来伪造IP;当然你也可以选择使用其他工具来伪造HTTP请求头中的IP信息。提示:先找到有效的登录信息,然后再伪造IP。如果你要使用simple-modify-headers插件,首先更新firefox浏览器,否则不能正确下载插件。题目提供的辅助文档如下:按照提示安装simple-modify-headers登陆靶机网站,查看源代码
2022-05-07 15:05:05
2360
原创 PAT (Advanced Level) 1141——case insensitive大小写不敏感
题目传送门使用map<string, int>进行institution与编号的映射模拟排序的题目,要细心get所有的排序条件啊#include<iostream>#include<cstring>#include<cstdio>#include<cstdlib>#include<string>#include<cmath>#include<algorithm>#include<map&
2022-04-30 14:12:08
280
原创 Machine Learning in IDS——scikit-learn
Detection RequirementDetect the DGA domains from the corpusWhat is the DGADomain Generating Algorithmusing seed(E.g. Date) to generate random domains to escapethe detectionTraining Datatrain.txtformat : domain name,labelTest Datatest.txt.
2022-04-29 20:41:27
1671
原创 信息系统安全实验——Week 8
T1.ssh免密登录题目描述通过操作机终端使用ssh登录靶机的test用户(密码123),flag用户目录中存放了可用于ssh免密码登录靶机的flag用户所必要的文件,使用这些文件登录靶机的flag用户,flag存在于flag用户目录中。操作机:1.10.138.2靶机:1.10.138.3首先,在网上了解一下ssh免密登陆的配置步骤:从A登陆B在B上输入命令ssh-keygen -t rsa,按下三次回车(使用默认配置)然后我们就会在~/.ssh生成两个文件:公钥id_rsa.pub和
2022-04-23 18:46:24
5438
原创 PAT (Advanced Level) 1165——数组模拟链表
题目传送门处理方式和这道题很相似记录每一个block的起始结点,倒着把每一个block输出即可#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>using namespace std;const int N = 100010;struct node { int x; int nxt;};node list[N];int n, m, start;
2022-04-23 12:19:06
1114
原创 PAT (Advanced Level) 1096——Consecutive连续的
题目传送门数据范围使用int即可求因数是sqrt级别的复杂度,简单暴力就可以了质数需要特殊处理我一开始无意识地写出了求因数的代码(每个数单独判断是否可以整除)但是题目的意思是,这一连串因数需要乘起来即再计算最长连续因数序列时,需要积累各个因数的影响a /= (cnt + i);我还想当然的认为,连续因数有这样的性质:若检测过[a,b][a,b][a,b]这个序列,那么之后我们只需要从b+1b+1b+1开始检测即可这是一丁点都错的!所以我们要对从2到sqrt的每一个数i,都计算以i
2022-04-21 11:53:43
248
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人