- 博客(27)
- 收藏
- 关注
原创 2022 CCCC 团体程序设计天梯赛(个人题解)
L1-1 今天我要赢(5分)#include<bits/stdc++.h>using namespace std;int main(){ cout<<"I'm gonna win! Today!\n2022-04-23";}L1-2 种钻石(5分)#include<bits/stdc++.h>using namespace std;int main(){ int N,v;cin>>N>>v; cout&l
2022-04-27 16:53:40
4751
3
原创 2018级《网络攻击与防御》考试题目
一、简答题(30分)1.给出一段XSS代码,并说明如何利用。2.说出不少于5种的安全配置错误。3.WLAN的安全机制有几种?详细描述最安全的一种的加解密方式。二、材料分析题材料一:<? php include($_GET['test']);?>材料二:<?php $target=$_GET['ip'] $cmd="ping -c 3 $target"; echo $cmd; system($cmd);?>1.请简述上述两个材料的安全漏洞。2.如
2022-04-19 13:07:37
957
原创 Educational Codeforces Round 118 (Rated for Div. 2)
A:Long Comparison 比较两个添加零的大整数的大小,直接对情况进行判断即可。B:Absent Remainder 给定一个包含有nnn个数的数列,你需要找到⌊n2⌋\lfloor \frac{n}{2} \rfloor⌊2n⌋对整数x,yx,yx,y,满足x,yx,yx,y出现在序列中但是x mod yx\ mod\ yx mod y不出现在原序列中。很简单的构造题,找到一个序列中最小的数minnumminnumminnum,序列中所有
2021-12-11 15:09:33
320
原创 【CCF CSP 2020-12】第21次CCF计算机软件能力认证
1.期末预测之安全指数2.期末预测之最佳阈值3.带配额的文件系统 非常非常非常巨大的 大模拟。分析一下题意,这个题主要包括三个操作:创建文件、删除文件、修改目录文件配额。而且每个文件应该包含了一些信息,可以考虑结构体,但主要问题都是如何通过一个文件名找到记录改文件存储信息的内存空间。这里需要注意的是:文件名可能不唯一(如给出的样例图),但带上路径的文件名一定是唯一的!可以利用这个特点去使用unordered_map记录。 创建文件的时候需要注意的一点是:一个操作如果不成功是不会对文件系统产生任何
2021-04-06 14:19:27
883
原创 【EOJ Monthly】2021.3
A:读不懂古神语的程序员不是一个合格的探险家 挺好玩的一个题1。其实按照题意来说就是一个环,从最小值到最大值都是递增的,从一号结点拆开也就是一个二次函数或者三次函数,让你找最值。一开始写了一个普普通通的三分代码,其实会有一个很致命的问题就是越界的问题(针对于三次函数并不是单峰的情况)。后来发现了一种很妙的代码:就是在左端点和终点的下一个点去判断这个上升/下降趋势,然后分类讨论:#include<bits/stdc++.h>using namespace std;const int m
2021-03-23 22:54:57
319
原创 Educational Codeforces Round 106 (Rated for Div. 2)
A:Domino on Windowsill 简单模拟。两侧都竖着放,中间交错的地方横着放,这样贪心的方法肯定是最优的,然后判断即可。B:Binary Removals 思维题。最后的串是一个单调非下降的子序列,我们不妨去枚举这样的01的分界点,这样前面半个串必须为0,后面半个串必须为1,然后再进行修改,这样很容易判断出修改是否有问题。C:Minimum Grid Path 贪心题。我们可以发现当iii是奇数的时候,我们可以得到(i+1)/2,i/2(i+1)/2,i/2(i+1)/2,
2021-03-23 11:53:20
257
原创 【算法竞赛入门到进阶】7.4 树形DP
Part.1【牛客树形DP例题】1:小G有一个大树 我们令F[i]F[i]F[i]表示以结点iii为根节点的子树有多少个结点,那么当结点iii被破坏时,所有子树的最大结点个数救赎max(n−num[i],num[son])max(n-num[i],num[son])max(n−num[i],num[son])(son是结点iii的所有子结点)。2:没有上司的舞会 (最大独立集) 子结点和父节点只能选择一个,很明显,我们可以用dp[i][0/1]dp[i][0/1]dp[i][0/1]表示结点i
2021-03-23 00:09:54
347
原创 【2021-03-21】2021年度训练联盟热身训练赛第三场
A:Circuit Math(简单模拟)A题通过代码B:Diagonal Cut(思维题) 先求解一个gcd,这样一个小矩形的长宽就是互质的。只有小矩形的长宽都是奇数的时候,就能找到一个中心对称的格子,正好被切成一半。B题通过代码C:Gerrymandering(简单模拟)C题通过代码D:Missing Numbers (语言题)D题通过代码E:NVWLSF:ProspectingG:Research Productivity Index (概率DP) 首先选择nnn篇论
2021-03-21 21:59:57
618
3
原创 【PAT Advanced】树、图
1020 Tree Traversals (25 分) + 1138 Postorder Traversal (25 分) + 1127 ZigZagging on a Tree (30 分) ※考察知识点:中序+前序/后序 =>层次 涉及到层次遍历最好做的方法是开一个vector,在DFS的时候,直接将对应深度的结点值放入即可。 1127唯一增加的难点在于每一层输出的顺序不一样,这个直接根据层次的奇偶输出即可。1020通过代码1021 Deepest Root (25 分) ※考察
2021-03-14 00:43:40
185
原创 【算法竞赛入门到进阶】10.9最短路
结点n、边m边权值选用算法数据结构n<200n<200n<200允许有负Floyd邻接矩阵n∗m<107n*m<10^7n∗m<107允许有负Bellman-Ford邻接表更大有负SPFA邻接表、前向星更大无负数Dijkstra邻接表、前向星【例:HDU2544 最短路径】1.Floyd:O(n3)O(n^3)O(n3) 能够一次性解决所有结点之间的最短路;能够处理负圈。#include<...
2021-02-10 00:31:40
303
原创 Codeforces Round #700 (Div. 2)
A:Yet Another String Game 题目大意是Alice和Bob轮流对一个字符串进行操作,每轮他俩都必须选择一个字符并对其作出修改。Alice的目标是让这个字符串的字典序尽可能小,Bob的目标是让这个字符串的字典序尽可能大,问双方操作后的新字符串是什么。 按顺序模拟,注意考虑字符本身是’a’和’z’的情况即可。#include<bits/stdc++.h>#define close ios::sync_with_stdio(false)using namespace
2021-02-08 15:32:07
271
1
原创 Codeforces Round #699 (Div. 2)
感谢繁凡さん大佬的指点,他的cf博客比我的详细,可以移步关注了解一下。A:Space Navigation 题目大意是给定你一个代表移动的序列,你只能去掉某些轮次的移动(去掉某些字母),不能改变序列的次序,问能不能到达终点。 就直接统计四个方向的次数,例如终点的X坐标为正只要满足向右移动的次数不小于X,X坐标为负只要满足向左移动的次数不小于X的绝对值即可。 #include<bits/stdc++.h> #define close ios::sync_with_s
2021-02-07 17:00:07
284
原创 【EOJ Monthly】2021.2
1.比赛链接:EOJ Monthly 2020.22.比赛情况:A题磕磕碰碰也算是拿了100(看错了从任意起点出发);B题图论蒟蒻选手直接把直链和树都当成树,写一个朴素LCA暴力骗38分闪人;C题直接在10!下找到所有可能的排列去构造线段树,然后判断是否满足所给定的区间骗23分闪人;D一分没得。3.比赛总结:感觉B题没做出来对不起自己刷的PAT…A:昔我往矣 这道题我的做法是采用LCA先找两个结点的最近公共祖先,然后不断地往里面加入新的点。①很明显,第一轮两个结点需要走过的距离是dist[A]+
2021-02-07 02:20:18
2628
3
原创 2021牛客寒假算法基础集训营3
A:模数的世界B:内卷C:重力坠击(枚举) 题目大意是给定n(1≤n≤10)n(1\le n\le 10)n(1≤n≤10)个敌人的坐标(0≤∣xi∣,∣yi∣≤7)(0\le|x_i|,|y_i|\le7)(0≤∣xi∣,∣yi∣≤7),每个敌人都有一个被消灭的范围ri(1≤ri≤7)r_i(1\le r_i\le7)ri(1≤ri≤7);然后给定攻击者的攻击范围R(1≤R≤7)R(1\le R \le7)R(1≤R≤7)以及攻击轮数k(1≤k≤3)k(1\le k\le3)k(1≤k≤3
2021-02-05 20:28:45
1463
1
原创 2021牛客寒假算法基础集训营1
A:串 (DP) 题目大意是有多少种长度不超过nnn的字符串能包含一个子序列“us”。这道题一开始我的想法是用dp的方式表示①包括"us"的子串;②只包括“u”不包括“s”的子串;③不包括“u”的子串。但是发现这三种情况的和不等于26n26^n26n,原因在于第二种情况遗漏了"s"在“u”前面的情况(既没有形成“us”,也包括了“u”)。因此我们把第二种情况更改成没有包括“us”但包括了"u"。 我们令dp[i][0/1/2]dp[i][0/1/2]dp[i][0/1/2]对应三种情况,则dp[i]
2021-02-04 19:28:41
354
1
原创 【算法竞赛入门到进阶】5.3线段树
1:HDU 1394 Minimum Inversion Number 先简单回顾一下求逆序对的可能做法:①归并排序;②树状数组/线段树。【例题:洛谷 P1908 逆序对】他们的时间复杂度都是O(nlogn)O(nlogn)O(nlogn),但使用的时候要注意树状数组需要将元素的值离散化。 这个题就相当于给定一个初始的序列,然后问你通过不断把第一个元素移到最后,形成的nnn个序列中,逆序对最少的序列中逆序对的数目。 这个题的关键是在于思考明白这样一个问题:一共有nnn个元素,当前序列第一个元素是
2021-02-01 00:25:19
365
原创 【洛谷题单刷题日记】线段树
1:洛谷 P3372 【模板】线段树 1 线段树是用来解决区间和/区间最值/区间覆盖的问题,而本道题涉及到了区间和问题,是区间修改和区间查询的问题(单点查询和单点修改对应的就是l==rl==rl==r的情况)。如果修改一个区间时,每次都修改到叶结点,那么一个叶节点的修改所需的复杂度是O(nlogn)O(nlogn)O(nlogn),修改一次区间的时间复杂度是O(nlogn)O(nlogn)O(nlogn),QQQ次区间修改的时间复杂度是O(n2logn)O(n^2logn)O(n2logn),效率甚至低
2021-01-30 23:36:02
626
2
原创 Educational Codeforces Round 103 (Rated for Div. 2)
A:K-divisible Sum 题目大意是你需要找到nnn个正整数,使得他们的和是kkk的倍数,在满足条件的前提下,使得nnn个数中的最大值尽可能地小。 很明显,nnn个正整数的和最小是nnn,当k>nk>nk>n时ans=k/n+(k%n!=0)ans=k/n+(k\%n!=0)ans=k/n+(k%n!=0);否则,就需要先填补kkk使得k>nk>nk>n,然后再执行上述步骤。#include<bits/stdc++.h>#define c
2021-01-30 14:21:46
335
1
原创 Codeforces Round #698 (Div. 2)
A:Nezzar and Colorful Balls 给你一个序列,你可以选择一个严格递增序列划分成一组,问你最少只需要划分几组。典型的贪心问题,划分成一组时尽可能地把能加入的元素都加入当前的序列中。#include<bits/stdc++.h>#define close ios::sync_with_stdio(false)using namespace std;int a[110],vis[110];int main(){ close; int T;cin&
2021-01-29 16:21:39
266
1
原创 【2021-01-21】PAT (Advanced Level) Practice
1001 A+B Format (20分) 简单的模拟题。就是整数类型的加减法然后对得到的结果进行处理即可。1002 A+B for Polynomials (25分) 简单的多项式相加,相同的系数进行加法运算就可以了。注意要点,系数可能为负,注意判断条件的使用。1003 Emergency (25分) ...
2021-01-21 20:31:24
294
原创 Educational Codeforces Round 98 (Rated for Div. 2)
A:Robot Program 这道题其实就是高中的排列组合,横着走和竖着走交替排列,如果两者数量差距大于1,就插入在原地站立不动的回合即可。B:Robot Program 这个题会随机从1~n的box中,随机选择boxibox_iboxi,将其中的物品放进另外n−1n-1n−1个box,使得剩余n−1n-1n−1的物品个数相同。只需要考虑两点:①所有的物品数量应该能被n−1n-1n−1个box平均分,即每个箱子至少应该有⌈totn−1⌉\big \lceil \frac{tot}{n-1}
2020-12-27 22:41:53
216
原创 牛客编程巅峰赛S2第4场
比赛链接:<a href="https://ac.nowcoder.com/acm/contest/9475>青铜&白银&黄金<a href="https://ac.nowcoder.com/acm/contest/9476>钻石&王者A:牛牛掷硬币 直接调用库函数即可。return to_string(pow(0.5,n)*2+0.005).substr(0,4);B:牛牛摆玩偶 这道题的做法是采用二分的方式。二分最近距离的最大值,然
2020-12-23 15:33:43
181
原创 Educational Codeforces Round 97 (Rated for Div. 2)
A:Marketing Scheme 满足r>=2∗lr>=2*lr>=2∗l无解。B:Reverse Binary Strings 这题应该注重结果而不是交换的过程。我们可以发现,对于一个串来说,一定发生了下面这种情况:1 1xxxxxx0 0 这时候我们可以发现,交换中间这个字符串的时候,仅仅改变了中间这个字符串,造成的影响仅仅针对于左右两侧s[i]≠s[i+1],而对这个中间字符相邻的关系没有任何改变!因此,我们可以统计11串和00串的个数,
2020-12-21 21:47:57
335
原创 牛客编程巅峰赛S2第1场
比赛地址:青铜&白银&黄金钻石&王者A: 最小差值 暴力求解。B:Tree IV 这个题采用模拟的方式去计算会超时。这就利用了二叉树的统计性质,设根结点的深度是1,那么每行的第一个结点的编号值是2dep−12^{dep-1}2dep−1,最后一个结点的编号值是2dep−12^{dep}-12dep−1。这样就可以算出答案。C:牛牛组数 nnn个数,每个数只能用一次,要求要分成kkk个数,使得和最大。很明显,先把nnn个数按从小到大的顺序排序,前k−1k-1
2020-12-21 21:45:55
250
原创 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京)
K:Co-prime Permutation 签到题。一个常见的套路:相邻两个数的最大公因子是1.这个结论的出来以后,除了k≠0k\not =0k=0的情况时Impossible,其他情况都可以通过将原本下标和值相等的序列右移一位来得到正确答案。L:Let’s Play Curling 签到题。题目想求解的是,在给定ccc的情况下,能够找到多少个aia_iai,使得对于所有的bib_ibi,都有∣ai−c∣<∣bi−c∣\big|a_i-c\big |<\big|b_i-c
2020-12-21 10:33:26
3376
3
原创 牛客编程巅峰赛S2第3场
如何用一个数组给一个vector向量赋值? ①当vector是刚刚创建的时候,可以直接初始化。int a[5]={1,2,3,4,5};vector<int> v(a+a+5); ②当vector已经被创建过的时候,可以使用Insert函数。int a[5]={1,2,3,4,5};vector<int> v;v.insert(v.begin(),a,a+5);A题:牛牛打怪 简单模拟。B 题:简单的公式 可以采用常见的矩阵快速幂的方式,满足f(n)
2020-12-15 09:41:20
199
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅