- 博客(31)
- 收藏
- 关注
原创 CSP201912-4 区块链
CSP201912-4 区块链题目结果算法分析代码详解1、全局变量2、主函数3、查询函数query()4、检查函数check()5、更新函数update()完整满分代码测试用例输入输出题目题目可以在CSP官网中查看到哟!结果算法分析这道题目竟然也是一个模拟题,模拟的思想也不是很复杂。这道题首先要注意的就是节点更新主链的条件(有两个,题目已经很清楚地说明了),其次要注意的就是只有节点的主链更新了,其才会将自己的主链向周围节点发送,而且发送的过程是需要的时间。剩下的就是纯粹的模拟了,具体代码详解如下
2021-03-16 20:37:26
533
原创 CSP201912-3 化学方程式
CSP201912-3 化学方程式题目结果算法分析代码详解完整满分代码题目题目可以在CSP官网中查看到哟!结果算法分析读过题目后可以发现这道题就是一个判断化学方程式是否配平成功的题目。根据基础的化学知识,判断化学方程式是否配平的方法就是:方程式左右两边的元素种类相同、相同的元素种类的原子个数相同。小编就是根据这个原理来进行相关判断的,用map<string,int>equation_left, equation_right来分别记录方程式左右两边元素的个数,例如:方程式左边有Ca原子
2021-03-16 10:34:48
709
原创 CSP201912-2 回收站选址
CSP201912-2 回收站选址题目结果算法分析完整满分代码题目题目可以在官网中查看到哟!结果算法分析这个题目还是相对比较简单的,看题目的数据范围之后,我们发现坐标的范围还是很大的,但是n是比较小的,因此,我们可以放心地遍历n个垃圾站。根据题目,回收站的位置要满足如下两个条件:第一个是回收站必须存在垃圾,也就是说回收站必须建立在n个垃圾站之上;第二个是回收站上下左右四个方向必须存在垃圾。分析完题目,小编通过遍历n个垃圾站,来判断那些垃圾站满足成为回收站的要求即可,之后在统计满足要求的回收站选
2021-03-14 17:28:55
329
原创 CSP201912-1 报数
CSP201912-1 报数题目结果算法分析完整满分代码题目题目可以在官网中查看到哟!结果算法分析题目的背景就是我们熟悉的饭局小游戏:遇见 7的倍数或者其中包含7的数就跳过,否则就要报数。当四个人甲、乙、丙、丁四个人报数的次数达到n,则游戏结束,最后输出四个人分别跳过了多少次。很显然,这就是一个简单的模拟题。我们用一个数组记录四个人跳过的次数,同时,也要记录报数的数值,也要记录报数的次数(达到n次就结束输出结果)。这一系列操作用一个循环即可。于此同时,小编还编写了一个判断函数,用来判断数值是否是
2021-03-13 11:21:50
361
原创 CSP202012-5 星际旅行 满分详解
CSP202012-5 星际旅行 满分详解题目结果算法分析详细代码讲解完整满分代码题目题目可以在CSP官网中查看到哟!结果算法分析详细代码讲解完整满分代码
2021-03-12 16:43:45
3552
5
原创 CSP202012-4 食材运输(图论+状压DP)
CSP202012-4 食材运输(图论+状压DP)题目结果算法分析代码详解完整代码题目题目可以在CSP官网中查看到哟!结果如下代码已经100分通过,截图如下:算法分析代码详解完整代码
2021-03-06 10:26:50
5167
13
原创 CSP202006-3 Markdown渲染器
CSP202006-3 Markdown渲染器题目算法思想结果完整代码题目题目可以在CSP官网中查看算法思想哈哈哈,又是一个模拟题。虽然题目看上去很长,但是只要耐下心来,一点一点将不同的内容类型区别开即可,很好理解题目的意思之后,还是可以感觉到难度不是很大的。通过题目要求可以将输入分为三类:普通段落、项目列表项、项目列表嵌套项,这三类皆有特定的开头符号,可以根据特定的开头符号要求即可完成判断。题目要求的整个处理过程很复杂,一遍遍历完成很容易想乱掉,所以可以把处理过程分成两部分:(1)预处理过程:
2021-03-03 10:40:49
374
原创 CSP202006-2 稀疏向量
CSP202006-2 稀疏向量题目算法思想完整代码题目题目可以在CSP官网中查看到哟!算法思想题目中将稀有向量的格式进行了改变,将取值不为0的维数,改变成 (index , value) 这种形式,其中 index 代表的是维数,value 代表的是这个维数上的取值,因此,两个向量的内积就是相同维度上的值的乘积的和。因此,我们要做的就是找到两个稀疏向量存在的取值不为0的相同的维数,使用两个指针 indexu , indexv即可实现这一功能:如果 indexu 对应的维数小于 indexv 对应的
2021-02-02 15:16:31
335
原创 CSP202006-1 线性分类器
`CSP202006-1 线性分类器`题目算法思想完整代码题目题目可以在CSP官网中查看到哟!算法思想题目大意是:判断type=A的所有点是否在直线的同一侧并且type=B的所有点是否在该直线的另一侧。我们要做的就是在读入m个直线的时候就开始判断。当读入一个直线的时候,我们遍历所有n个点,我们首先用flagA和flagB标记是否出现过type=A或type=B的点,如果没有出现,则用ansA和ansB记录此时type=A或type=B的点在直线的哪一侧;如果出现了,则判断当前这个点在直线的一侧是否与
2021-01-30 16:26:50
328
原创 CSP202009-5 密信与计数
CSP202009-5 密信与计数题目算法思想代码详解完整代码题目题目可以在CSP官网中查看到哟!算法思想一看这一道题,很容易想到的就是用AC自动机进行字符串匹配,而最后要统计满足条件的合法密文的数量,又有AC自动机中的状态,因此,使用动态规划进行求解。接下来就是动态规划中的状态转移方程了。首先,小编的另一篇博客AC自动机-详解AC自动机以及模板详细图解介绍了AC自动机算法以及提供了AC自动机算法的模板,不了解AC自动机算法的朋友可以查看那篇博客对AC自动机算法进行入门。其次,就是有关动态规划的
2021-01-29 19:48:49
2388
1
原创 AC自动机-详解AC自动机以及模板
AC自动机-详解AC自动机以及模板AC自动机算法简介AC自动机算法大致流程AC自动机详细图解AC自动机模板题与模板题目内容代码详解完整代码AC自动机算法简介首先简要介绍一下AC自动机,英文名:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模板匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先要有字典树Trie和KMP模式匹配算法的基础知识。其中,KMP是用于一对一的字符串匹
2021-01-29 17:05:28
5178
3
原创 LeetCode1733 需要教语言的最少人数
LeetCode1733 需要教语言的最少人数题目算法分析完整代码题目在一个由 m 个用户组成的社交网络里,我们获取到一些用户之间的好友关系。两个用户之间可以相互沟通的条件是他们都掌握同一门语言。给你一个整数 n ,数组 languages 和数组 friendships ,它们的含义如下:总共有 n 种语言,编号从 1 到 n 。languages[i] 是第 i 位用户掌握的语言集合。friendships[i] = [ui, vi] 表示 u
2021-01-27 21:39:09
239
原创 历届CSP真题题解-CSP刷真题之路
历届CSP真题题解-CSP刷真题之路(持续更新中。。。)2020-122020-092020-12题目编号题解链接202012-1 期末预测之安全指数CSP202012-1 期末预测之安全指数题解202012-2 期末预测之最佳阈值CSP202012-2 期末预测之最佳阈值题解202012-3 带配额的文件系统CSP202012-3 带配额的文件系统题解2020-09题目编号题解链接202009-1 称检测点查询CSP202009-1
2021-01-27 12:11:07
3364
原创 CSP202009-2 风险人群筛查
CSP202009-2 风险人群筛查题目算法分析完整代码题目题目可以在CSP官网中查看哟!算法分析这道题难度不是很大,算是一个较为简单的小模拟题吧。题目大致意思就是:有一个疫情高危区域,输入n个人的t个移动位置坐标,判断这个人会不会出现在高危区域,如果出现并连续在高危区域出现了超过k个时刻,则判定这个人经过高危区域,并停留了;如果这个人只是出现在高危区域,但并没有连续出现k个区域,则判定这个人只是经过了高危区域。我们只需要遍历n个人,再依次遍历每一个人的t个时刻的位置,用一个计数器时刻记录这个人连
2021-01-27 10:44:55
338
3
原创 CSP202009-1 称检测点查询
CSP202009-1 称检测点查询题目算法分析完整代码题目题目可以在CSP观望中看到哟!算法分析这道题是一道关于排序的题目,题目给出了市民坐在位置的坐标,要在n个监测点中寻找到最近的三个监测点,并输出其三个的编号。排序的时候,如果距离一样,则编号小的排在前面(这就是排序条件)。首先,按照距离由小到大进行排序,距离一样的话,按照编号从小到大排序。利用sort快速排序即可,可以自定义它的排序条件,代码如下。完整代码#include<iostream>#include<cstd
2021-01-27 09:29:07
365
1
原创 CSP202012-2 期末预测之最佳阈值
CSP202012-2 期末预测之最佳阈值题目算法思想完整代码题目题目可以在CSP的官网查看到哟!算法思想这道题要做的就是寻找最佳的阈值,使得预测正确的数量最多。看过最后的数据范围,发现2<=m<=100000,这道题很容易想到O(n * n)的算法,但是肯定会超时,因此需要一个时间复杂度较低的算法。接下来,小编介绍的算法时间复杂度是O(n*logn)。首先对阈值进行排序,按照阈值从大到小进行排序,可以很容易地想到,在选择的阈值之前的预测为0的是预测正确的,在阈值之后的预测为1的是预测
2021-01-26 14:51:22
1248
3
原创 CSP202012-1 期末预测之安全指数
CSP202012-1 期末预测之安全指数题目算法分析完整代码题目题目可以在CSP的官网上找到哟!算法分析题目看上去花里胡哨的,还用到了激活函数,其实简化后就是:给出n组数据,每一组数据有两个参数,一个是第 i项指标的重要程度,另一个是小菜同学在该项的得分。而我们要做的就是对这n组中的连个参数相乘并求和。如果最终的求和大于0,则直接输出这个结果;如果最终的求和小于等于0,则输出0即可。还是很简单的哟!完整代码#include<iostream>#include<cstdio
2021-01-25 18:55:13
1029
原创 CSP202009-4 星际旅行
CSP202009-4星际旅行题目算法思想代码详解预处理2、最短距离的计算3、输出完整代码题目这道题的题目可以在CSP官网中可以看到哟!算法思想这道题可以将距离和拆分成每两个点之间的距离,以简化问题。因此需要判断两点之间的连线是否与中心的黑洞圆有交点,如果没有交点,则两点之间最短的距离就是两点之间连线的距离;如果有交点,则说明两点之间最短距离肯定是要包含圆的一部分的。两点之间的直线距离通过距离公式即可直接求出,而中心圆的部分则需要相关数学几何的知识即可求出。总体来看,这道题难度不大,大家可以尝试一下
2021-01-23 13:51:58
480
1
原创 CSP202012-3 带配额的文件系统
CSP202012-3 带配额的文件系统算法思想代码详解1、文件节点的数据结构2、召回操作3、主函数4、创建普通文件5、移除文件6、设置配额值7、感想8、完整代码算法思想这道题是一个比较复杂的模拟题,难度不是很大,只要耐心地将每一种情况都考虑到,还是很容易100分的。想练习大模拟的朋友,可以耐下心来做一下这个题,这道题的细节还是很多的。依据题目,可以主要有三种操作,分别为创建普通文件、移除文件和设置配额值这三个操作。通过对文件系统的了解,可以判断出采用的数据结构是树,我之前也写了一个关于树的数据结构
2021-01-21 16:33:21
4587
20
原创 洛谷T160512 G - 森林
洛谷T160512 G - 森林题目题解这道题是小编在参加第三届“传智杯”全国大学生IT技能大赛(初赛A组)时碰到的(题目链接),这道题可以算是有关树的基础算法题,可以当作树算法的练手题。题目题目链接YYH Land(Yoauld, Youthful & Happy Land)是位于炽蓝仙野的一片神奇的国度,那里的人们过着无拘无束的的快乐生活。清蒸鱼是一个尽职尽责的 YYH Land 护林者。他负责每天维护 YYH Land 的森林。在最开始的时候,YYH Land 只有一棵具有 n 个节点
2020-12-22 14:25:55
329
1
原创 数据结构-树
数据结构-树数据结构-树树的数据结构树的构建寻找遍历节点的所有父节点无向树转有向树树的相关练习题数据结构-树小编参加第二十一次CSP认证考试时,被第三题的关于树的题卡了好久之后,下定决心对树进行系统的学习。小编经过赛后的练习,确定了自己感觉十分顺手的树的构建方法。树的数据结构小编比较喜欢,并且用起来十分顺手的树的数据结构如下(小编对用指针一向不是很擅长,因此选择了用vector数组来代替指针存储孩子的节点):struct Node{ int father; //树节点的父亲节点 int va
2020-12-22 14:25:01
583
2
原创 GEM5教程-Garnet 2.0
GEM5教程-Garnet 2.0一、Garnet2.0:一种用于异构SoCs的片上网络模型二、调用三、配置四、拓扑结构网络组件五、路由六、流量控制七、路由器微体系结构1、缓冲区写入(BW)2、路线计算(RC)3、交换机分配(SA)4、VC选择(VS)5、链路遍历(LT)多周期路由器八、缓冲区管理一、Garnet2.0:一种用于异构SoCs的片上网络模型1、 garent2.0是gem5内部一...
2020-03-21 11:47:14
3123
原创 GEM5教程-互联网络
GEM5教程-互联网络一、如何调用网络1、简单的网络2、Garnet 网络二、拓扑结构1、相关的文件2、拓扑描述一、如何调用网络1、简单的网络./build/ALPHA/gem5.debug \ configs/example/ruby_random_test.py \ --num-cpus=16 \ ...
2020-03-19 17:35:29
3434
1
原创 GEM5教程-Garnet
GEM5教程-Garnet1、Garnet Network Model(Garnet 网络模型)2、调用3、配置1、Garnet Network Model(Garnet 网络模型)GEM5不再支持这种Garnet Network Model。更新后的模型是Garent 2.0。Garnet是gem5内部一个详细的互连网络模型。详情可在ISPASS 2009论文中找到。如果您对Garnet ...
2020-03-18 20:13:58
3902
原创 GEM5教程--修改和拓展gem5(四)
GEM5教程--修改和拓展gem5(四)六、在内存系统中创建SimObjects1、gem5主、从端口2、数据包3、端口接口4、简单内存对象示例六、在内存系统中创建SimObjects在这个部分中,我们将创建一个位于CPU和内存总线之间的简单内存对象。在下面的部分中中,我们将使用这个简单的内存对象,并为其添加一些逻辑,使其成为一个非常简单的阻塞单处理器缓存。1、gem5主、从端口在深入研究...
2020-03-16 22:04:01
4696
1
原创 GEM5教程--修改和拓展gem5(三)
GEM5教程--修改和拓展gem5(三)五、向SimObjects和更多事件添加参数1、简单参数2、其他SimObjects作为参数3、将GoodbyeObject作为参数添加到HelloObject五、向SimObjects和更多事件添加参数GEM5的Python接口最强大的部分之一是将参数从Python传递到GEM5中的C++对象的能力。在本部分中,我们将探讨SimObjects的一些参数...
2020-02-24 08:30:03
3488
原创 GEM5教程--修改和拓展gem5(二)
GEM5教程--修改和拓展gem5(二)三、调试GEM51、使用调试标志(debug flags)2、添加一个新的调试标志三、调试GEM5gem5通过调试标志提供对printf样式的代码跟踪/调试的支持。 这些标志允许每个组件具有许多调试打印语句,而无需同时启用所有这些语句。 运行gem5时,您可以从命令行指定要启用的调试标志。1、使用调试标志(debug flags)(1)例如,运行“创...
2020-02-22 21:33:18
3990
原创 GEM5教程--修改和拓展gem5(一)
GEM5教程--修改和拓展gem5(一)一、设置开发环境1、gen5样式准则([编码样式文档](http://old.gem5.org/Coding_Style.html))一、设置开发环境1、gen5样式准则(编码样式文档)修改任何开源项目时,请务必遵循项目的样式准则。 gem5样式的详细信息可以在如上网站找到。...
2020-02-20 10:44:26
6045
2
原创 GEM5教程--gem5开始之旅(一)
GEM5系列教程--gem5开始之旅一、建立GEM5GEM5模拟器是一个用于计算机系统结构研究的模块化平台,包含系统级别的结构以及处理器的微体系结构。读者若想详细的了解,请查看其官方文档GEM5文档读者如果想要入门GEM5的话,可以参考Learning_GEM5这个网站,这里面有较为详细的教程,可以带读者从入门到精通。小编我对GEM5的入门学习也是从这个Learning_GEM5这个网站学习的...
2020-02-18 15:18:57
22729
19
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人