草庐IT

C++算法竞赛常用函数及算法

C++算法竞赛常用函数及算法一、string类在算法中的常见用法构造,赋值,存取,拼接,查找,替换,比较,子串,插入,删除#include#include//#include//#includeusingnamespacestd;strings="string";chara[20]={"char[]"};intmain(){ //1、字符串拼接 //支持使用+连接字符串 //2、字符串输入输出//cin>>s;//输入HelloWorld!cin是以空格,回车作为结束输入的标志//cout//3、读取一行字符(cin.getline()) //cin.getline定义在下,如:a[n]则最多

算法沉淀——队列+宽度优先搜索(BFS)(leetcode真题剖析)

算法沉淀——队列+宽度优先搜索(BFS)01.N叉树的层序遍历02.二叉树的锯齿形层序遍历03.二叉树最大宽度04.在每个树行中找最大值队列+宽度优先搜索算法(Queue+BFS)是一种常用于图的遍历的算法,特别适用于求解最短路径或最少步数等问题。该算法通常用于在图中寻找从起点到目标点的最短路径。基本思想:初始化队列:将起始节点放入队列中。BFS遍历:从队列中取出一个节点,遍历与该节点相邻且未访问过的节点,将其加入队列。标记已访问:标记已访问的节点,避免重复访问。重复步骤2和3:直到队列为空。这个算法适用于无权图的最短路径问题。在搜索的过程中,每一层级的节点都会被依次访问,直到找到目标节点。具

c++ - 更好的 vector 数据压缩算法?

我需要压缩一些空间相关的数据记录。目前我使用zlib获得1.2x-1.5x压缩,但我认为应该有可能获得更接近2x的压缩。数据记录有各种字段,但例如,zlib似乎无法压缩点列表。这些点代表道路网络。它们是XXXXYYYY形式的定点4字节整数对。通常,如果单个数据block有100个点,则X和Y的前两个字节(空间相关)的组合只会很少。但是底部字节总是在变化,并且对于zlib来说必须看起来像随机数据。同样,记录具有4字节ID,往往具有恒定的高字节和可变的低字节。是否有另一种算法能够更好地压缩这种数据?我正在使用C++。编辑:请不要再提出更改数据本身的建议。我的问题是关于自动压缩算法。如果有人

c++ - 如何为关联容器应用 std::accumulate 算法?

对于像std::map这样的映射,我如何计算它的值总和?实际上,我是用仿函数和std::for_each算法实现的。但我也想使用std::accumulate算法来实现。我不知道如何将它应用到std::map。这可能吗?structAccumurator:std::unary_function,void>{Accumurator():totalValue_(0){}voidoperator()(conststd::pair&p){totalValue_+=p.second;}intresult()const{returntotalValue_;}inttotalValue_;};int

NNDL 作业13 优化算法3D可视化

编程实现优化算法,并3D可视化1.函数3D可视化分别画出 和 的3D图(1)结果:代码:importtorchimportnumpyasnpimportcopyfrommatplotlibimportpyplotaspltfrommatplotlibimportanimationfromitertoolsimportzip_longestclassOp(object):def__init__(self):passdef__call__(self,inputs):returnself.forward(inputs)#输入:张量inputs#输出:张量outputsdefforward(self,

递推+模拟---想好如何存储?

递推+模拟输入输出问题CCF-CSP考试历年真题题型分类分组输入——可能有多组测试数据,对于每组数据递推---从前面已知态--->后续未知态AcWing3777.砖块AcWing1208.翻硬币AcWing1211.蚂蚁感冒AcWing3433.吃糖果AcWing821.跳台阶模拟202212-2-csp-训练计划202206-2-csp-寻宝!大冒险!---稀疏矩阵---数学坐标系202112-2-csp-序列查询新解---数学问题202009-2-csp-风险人群筛查201912-2-csp-回收站选址201909-2-csp-小明种苹果(

基于区块链与函数加密的隐私数据安全共享模型研究

基于区块链与函数加密的隐私数据安全共享模型研究李懿1,2,3, 王劲松1,2,3, 张洪玮1,2,31天津理工大学计算机科学与工程学院,天津3003842智能计算机及软件新技术天津市重点实验室,天津3003843计算机病毒防治技术国家工程实验室,天津300457摘要:区块链技术给数据共享中的数据确权、数据溯源、数据可信、数据可用等方面提供了新思路,但数据共享中的隐私数据安全仍面临许多挑战。首先回顾当前基于区块链的数据共享研究现状;然后提出一种隐私数据安全共享模型,通过函数加密技术对隐私数据进行加密,结合零知识证明技术生成相关计算的可信证明,实现“数据可用不可见”的安全可靠的数据共享。实验结果显

华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】

使用说明参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。华为OD清单查看地址:https://blog.csdn.net/hihell/category_12201821.html华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730分糖果小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们。当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果。小明最少需要多少次(取出、放回和平均分配均记一次),能将手中糖果分至只剩一颗输入输出描述:输入描述

225. 用队列实现栈、232. 用栈实现队列、622. 设计循环队列

LeetCode题解前言用队列实现栈用栈实现队列循环队列总结前言这三道题都是比较经典的一道题,主要想要考察我们对于栈、队列的性质的应用,也是笔试题的常客!!!接下来就让我们一起来手撕它!!!用队列实现栈题目描述:➡️挑战链接⬅️分析:由于我们当前用的是C语言来刷的题,而C语言刷题最大的缺点就是得自己造轮子!!!因此我们在这里得把我们之前写的栈copy过来,不然没办法做;进入主题:我们的目的是实现栈,而且是利用队列去实现栈:首先我们想到的是栈的性质是先进后出,队列的性质是先进先出;我们先按照一样的顺序给数据入栈和入队列,那么现在我们要实现的是栈,栈的基本擦做就是出栈入栈,那么我们想要出栈的话,那

LeetCode | 704.二分查找

704.二分查找关于二分查找最重要的就是分类讨论好二分,二分看着好写边界case还是需要测试的哈什么是区间不变量?比如区间取左闭右闭的话那么每次区间二分范围都是新区间的左闭右闭后面做判断时要一直基于这个左闭右闭的区间其实区间定义成开或者闭都没有什么关系只是要明确每次收缩范围后范围内的元素是哪些注意会不会漏掉边界就好大家需要注意二分的几种情况当l=0,r=n的时候因为r这个值我们在数组中无法取到,while(l当l=0,r=n-1的时候因为r这个值我们在数组中可以取到,while(l二分法有多种写法,末尾是开区间闭区间都可以解出寻找单个元素和寻找边界的题目,只需要注意相应的是l其实二分还有很多应