讨论区Python语言中的BranchandBound算法实现它包含r_tree子模块,因而使用--递归选项进行克隆gitclone--recursivehttps://github.com/sudkumar/bbs_implementation用法$pythonskyline.py#例如pythonskyline.pyquery2.txtsample2.txt参数文件<查询文件>添加了两个示例查询文件,分别名为query2.txt和sample_query.txt。
第一行包含我们要在其上计算天际线的维,不包括第一列(id),并且从1开始第二行包含磁盘上的page_size第三行包含以空格分隔的pointer_size和key_size
2017/5/17 19:42:17 151KB Python
1
数据结构算法与应用-C++语言描述目录译者序前言第一部分预备知识第1章C++程序设计11.1引言11.2函数与参数21.2.1传值参数21.2.2模板函数31.2.3引用参数31.2.4常量引用参数41.2.5返回值41.2.6递归函数51.3动态存储分配91.3.1操作符new91.3.2一维数组91.3.3异常处理101.3.4操作符delete101.3.5二维数组101.4类131.4.1类Currency131.4.2使用不同的描述方法181.4.3操作符重载201.4.4引发异常221.4.5友元和保护类成员231.4.6增加#ifndef,#define和#endif语句241.5测试与调试241.5.1什么是测试241.5.2设计测试数据261.5.3调试281.6参考及推荐读物29第2章程序功能302.1引言302.2空间复杂性312.2.1空间复杂性的组成312.2.2举例352.3时间复杂性372.3.1时间复杂性的组成372.3.2操作计数372.3.3执行步数442.4渐进符号(O、健?、o)552.4.1大写O符号562.4.2椒?582.4.3符号592.4.4小写o符号602.4.5特性602.4.6复杂性分析举例612.5实际复杂性662.6功能测量682.6.1选择实例的大小692.6.2设计测试数据692.6.3进行实验692.7参考及推荐读物74第二部分数据结构第3章数据描述753.1引言753.2线性表763.3公式化描述773.3.1基本概念773.3.2异常类NoMem793.3.3操作793.3.4评价833.4链表描述863.4.1类ChainNode和Chain863.4.2操作883.4.3扩充类Chain913.4.4链表遍历器类923.4.5循环链表933.4.6与公式化描述方法的比较943.4.7双向链表953.4.8小结963.5间接寻址993.5.1基本概念993.5.2操作1003.6模拟指针1023.6.1SimSpace的操作1033.6.2采用模拟指针的链表1063.7描述方法的比较1103.8应用1113.8.1箱子排序1113.8.2基数排序1163.8.3等价类1173.8.4凸包1223.9参考及推荐读物127第4章数组和矩阵1284.1数组1284.1.1抽象数据类型1284.1.2C++数组1294.1.3行主映射和列主映射1294.1.4类Array1D1314.1.5类Array2D1334.2矩阵1374.2.1定义和操作1374.2.2类Matrix1384.3特殊矩阵1414.3.1定义和应用1414.3.2对角矩阵1434.3.3三对角矩阵1444.3.4三角矩阵1454.3.5对称矩阵1464.4稀疏矩阵1494.4.1基本概念1494.4.2数组描述1494.4.3链表描述154第5章堆栈1615.1抽象数据类型1615.2派生类和继承1625.3公式化描述1635.3.1Stack的效率1645.3.2自定义Stack1645.4链表描述1665.5应用1695.5.1括号匹配1695.5.2汉诺塔1705.5.3火车车厢重排1725.5.4开关盒布线1765.5.5离线等价类问题1785.5.6迷宫老鼠1805.6参考及推荐读物188第6章队列1896.1抽象数据类型1896.2公式化描述1906.3链表描述1946.4应用1976.4.1火车车厢重排1976.4.2电路布线2016.4.3识别图元2046.4.4工厂仿真2066.5参考及推荐读物217第7章跳表和散列2187.1字典2187.2线性表描述2197.3跳表描述2227.3.1理想情况2227.3.2插入和删除2237.3.3级的分配2247.3.4类SkipNode2247.3.5类SkipList2257.3.6复杂性2297.4散列表描述2297.4.1理想散列2297.4.2线性开型寻址散列2307.4.3链表散列2347.5应用——文本压缩2387.5.1LZW压缩2397.5.2LZW压缩的实现2397.5.3LZW解压缩2437.5.4LZW解压缩的实现2437.6参考及推荐读物247第8章二叉树和其他树2488.1树2488.2二叉树2518.3二叉树的特性2528.4二叉树描述2538.4.1公式化描述2538.4.2链表描述2548.5二叉树常用操作2568.6二叉树遍历2568.7抽象数据类型BinaryTree2598.8类BinaryTree2608.9抽象数据类型及类的扩充2638.9.1输出2638.9.2删除2648.9.3计算高度2648.9.4统计节点数2658.10应用2658.10.1设置信号放大器2658.10.2在线等价类2688.11参考及推荐读物275第9章优先队列2769.1引言2769.2线性表2779.3堆2789.3.1定义2789.3.2最大堆的插入2799.3.3最大堆的删除2799.3.4最大堆的初始化2809.3.5类MaxHeap2819.4左高树2859.4.1高度与宽度优先的最大及最小左高树2859.4.2最大HBLT的插入2879.4.3最大HBLT的删除2879.4.4合并两棵最大HBLT2879.4.5初始化最大HBLT2899.4.6类MaxHBLT2899.5应用2939.5.1堆排序2939.5.2机器调度2949.5.3霍夫曼编码2979.6参考及推荐读物302第10章竞?30310.1引言30310.2抽象数据类型WinnerTree30610.3类WinnerTree30710.3.1定义30710.3.2类定义30710.3.3构造函数、析构函数及Winner函数30810.3.4初始化赢者树30810.3.5重新组织比赛31010.4输者树31110.5应用31210.5.1用最先匹配法求解箱子装载问题31210.5.2用相邻匹配法求解箱子装载问题316第11章搜索树31911.1二叉搜索树32011.1.1基本概念32011.1.2抽象数据类型BSTree和IndexedBSTree32111.1.3类BSTree32211.1.4搜索32211.1.5插入32311.1.6删除32411.1.7类DBSTree32611.1.8二叉搜索树的高度32711.2AVL树32811.2.1基本概念32811.2.2AVL树的高度32811.2.3AVL树的描述32911.2.4AVL搜索树的搜索32911.2.5AVL搜索树的插入32911.2.6AVL搜索树的删除33211.3红-黑树33411.3.1基本概念33411.3.2红-黑树的描述33611.3.3红-黑树的搜索33611.3.4红-黑树的插入33611.3.5红-黑树的删除33911.3.6实现细节的考虑及复杂性分析34311.4B-树34411.4.1索引顺序访问方法34411.4.2m叉搜索树34511.4.3m序B-树34611.4.4B-树的高度34711.4.5B-树的搜索34811.4.6B-树的插入34811.4.7B-树的删除35011.4.8节点结构35311.5应用35411.5.1直方图35411.5.2用最优匹配法求解箱子装载问题35711.5.3交叉分布35911.6参考及推荐读物363第12章图36512.1基本概念36512.2应用36612.3特性36812.4抽象数据类型Graph和Digraph37012.5无向图和有向图的描述37112.5.1邻接矩阵37112.5.2邻接压缩表37312.5.3邻接链表37412.6网络描述37512.7类定义37612.7.1不同的类37612.7.2邻接矩阵类37712.7.3扩充Chain类38012.7.4类LinkedBase38112.7.5链接类38212.8图的遍历38612.8.1基本概念38612.8.2邻接矩阵的遍历函数38712.8.3邻接链表的遍历函数38812.9语言特性38912.9.1虚函数和多态性38912.9.2纯虚函数和抽象类39112.9.3虚基类39112.9.4抽象类和抽象数据类型39312.10图的搜索算法39412.10.1宽度优先搜索39412.10.2类Network39512.10.3BFS的实现39512.10.4BFS的复杂性分析39612.10.5深度优先搜索39712.11应用39912.11.1寻找路径39912.11.2连通图及其构件40012.11.3生成树402第三部分算法设计方法第13章贪婪算法40513.1最优化问题40513.2算法思想40613.3应用40913.3.1货箱装船40913.3.20/1背包问题41013.3.3拓扑排序41213.3.4二分覆盖41513.3.5单源最短路径42113.3.6最小耗费生成树42413.4参考及推荐读物433第14章分而治之算法43414.1算法思想43414.2应用44014.2.1残缺棋盘44014.2.2归并排序44314.2.3快速排序44714.2.4选择45214.2.5距离最近的点对45414.3解递归方程46214.4复杂性的下限46314.4.1最小最大问题的下限46414.4.2排序算法的下限465第15章动态规划46715.1算法思想46715.2应用46915.2.10/1背包问题46915.2.2图像压缩47115.2.3矩阵乘法链47615.2.4最短路径48015.2.5网络的无交叉子集48315.2.6元件折叠48615.3参考及推荐读物491第16章回溯49216.1算法思想49216.2应用49616.2.1货箱装船49616.2.20/1背包问题50316.2.3最大完备子图50616.2.4旅行商问题50816.2.5电路板排列510第17章分枝定界51617.1算法思想51617.2应用51917.2.1货箱装船51917.2.20/1背包问题52617.2.3最大完备子图52817.2.4旅行商问题52917.2.5电路板排列532
2019/2/11 7:56:36 11.23MB 数据结构
1
[摘要]采用分层递归的方法,研究了“在n个外形相同的球中找出独一与其它球重量不相同的球”的算法,给出了对任何n(n>2)的统一称法.并证明了所设计
2019/3/26 6:19:23 1018KB 算法
1
代码说明ρ攻击的目的和生日攻击类似,也是寻求一个基于sm3哈希值的弱碰撞,但是寻找的方式是通过ρ递推表达式来依次尝试。
这里我使用了类似查表攻击似的数据结构,一边存表一边查表(可以使用多线程进一步优化脚本功能),以便可以在较短时间内找到一个前16bit的hash弱碰撞。
如果寻找更长bit的碰撞,寻找时间也会相应变长。
实验结果可见,寻找16bit碰撞中生日攻击所需要的时间少于ρ攻击,但是如果加长碰撞的bit长度,ρ攻击会比生日攻击展现出更好的效率。
运行指导将源码clone到本地运行main函数即可运行ρ攻击脚本。
软件环境:VisualStudio2019硬件环境:PC机
2018/4/13 22:48:23 6KB sm3 c++ rho ρ攻击
1
递归神经网络(RNN)近些年来被越来越多地应用在机器学习领域,尤其是在处理序列学习任务中,相比CNN等神经网络功能更为优异。
但是RNN及其变体,如LSTM、GRU等全连接网络的计算及存储复杂性较高,导致其推理计算慢,很难被应用在产品中。
一方面,传统的计算平台CPU不适合处理RNN的大规模矩阵运算;
另一方面,硬件加速平台GPU的共享内存和全局内存使基于GPU的RNN加速器的功耗比较高。
FPGA由于其并行计算及低功耗的特性,近些年来被越来越多地用来做RNN加速器的硬件平台。
对近些年基于FPGA的RNN加速器进行了研究,将其中用到的数据优化算法及硬件架构设计技术进行了总结介绍,并进一步提出了未来研究的方向。
2017/3/13 16:19:19 1.39MB 递归神经网络 FGPA 加速器
1
由0和1构成的m*n维矩阵M表示一个迷宫,其中0表示通路,1表示墙壁。
迷宫入口为(1,1),出口为(m,n)。
迷宫随机产生。
试编一算法求出从入口点到出口点可沿八个方向或四个方向前进的一条通路,或显示没有通路
2020/10/5 9:45:02 54KB 迷宫求解
1
里面次要是运用了迪杰斯特拉算法来实现的最短路径的,还有dfs的递归查找路径等备注:这是用codeblocks写的
2017/11/10 11:37:25 291KB 数据结构课设
1
LeetCodecpp最新中文题解.pdfLeetCodecpp最新中文题解.pdfLeetCodecpp最新中文题解.pdf目录3.4Addbinary615.1.5BinaryTreeLevelOr-3.5LongestPalindromicSubstring.62dertraversalil3.6RegularExpressionMatching665.1.6BinaryTreeZigzag3.7WildcardMatching67LevelOrdertraversal.963.8LongestCommonPrefix5.1.7RecoverBinarySearch3.9ValidNumber70Tree983.10Integertoroman725.1.8SameTree3.11RomantoInteger735.1.9SymmetricTree1003.12CountandSay745.1.10BalancedBinaryTree..1023.13Anagrams755.1.11FlattenBinaryTreeto3.14SimplifyPath76LinkedList1033.15LengthofLastWord775.1.12PopulatingNextRightPointersineachnodeii105第4章栈和队列7952二叉树的构建10641栈795.2.1ConstructBinaryTree4ValidParentheses79fromPreorderandIn4.1.2LongestvalidParenorderTraversa106theses805.2.2ConstructBinaryTree4.1.3LargestRectangleinfromInorderandposHistogram82torderTraversal1074.1.4Evaluatereversepol-53二叉查找树108ishnotation845.3.1UniqueBinarySearch4.2队列85Trees.1085.3.2UniqueBinarySearch第5章树86Treesli.1105.1二叉树的遍历865.3.3ValidateBinarySearch5.1.1BinaryTreePreorderTreeTraversal865.3.4ConvertSortedarrayto5.1.2BinaryTreeInorderBinarySearchTree...112Traversal885.3.5ConvertSortedListto5.1.3BinaryTreePostorderBinarySearchTree113Traversal9054二叉树的递归.1145.1.4BinaryTreeLevelOr5.4.1MinimumDepthofBidertraversal)2narylree115目录5.4.2MaximumDepthofBi8.3.,2重新实现nextpermunaryTree116tation1425.4.3PathSum11783.3递归.1435.44PathSumil1188.4PermutationsII1445.4.5BinaryTreeMaximum8.4.1nextpermutation...144PathSuum11984.2重新实现nextpermu5.4.6PopulatingNextRighttation144Pointersineachnode120843递归1445.4.7SumRoottoLeafnum8.5Combinations146bers2185.1递归1468.5.2迭代147第6章排序1238.6LetterCombinationsofaphone6.1MergeSortedArray123umber1476.2MergeTwoSortedLists12486.1递归1486.3MergekSortedLists124862迭代96.4InsertionSortList125第9章广度优先搜索1506.5Sortlist1269.1WordLadder1506.6FirstMissingPositive1279.2WordLadderil1546.7SortColors1289.3Surroundedregions162第7章查找94小结16413194.l适用场景1647.1Searchforarange131942思考的步骤7.2SearchInsertPosition.13294.3代码模板1657.3Searcha2DMatrix133第10章深度优先搜索173第8章暴力枚举法13510.1PalindromePartitioning1738.1Subsets13510.2UniquePaths1768.1.1递归1350.2.1深搜1768.1.2迭代.1371022备忘录法.1768.2Subsetsil13810.23动规177821递归13810.24数学公式1788.2.2迭代.14110.3UniquePathsIl1798.3Permutations14210.3.1备忘录法1798.3.1nextpermutation14210.3.2动规.180目录10.4N-Queens1813.4Maximalrectangle21310.5N-QueensII18413.5BestTimetoBuyandSellStock10.6Restoreipaddresses186.21410.7CombinationSum18813.6InterleavingString21510.8CombinationSumIl18913.7ScrambleString21710.9GenerateParentheses.19013.8MinimumPathSum.22210.10Sudokusolver19213.9EditDistance22410.11WordSearch.19313.10DecodeWays.22610.12小结19513.11Distinctsub22710.12.1适用场景19513.12WordBreak22810.122思考的步骤1951313WordBreakil2300.12.3代码模板197第14章图23210.12.4深搜与回溯法的区別.19714.1CloneGraph23210.12.5深搜与递归的区别..197第15章细节实现题235第11章分治法19915.1ReverseInteger2351.1Pow(x,n)19915.2PalindromeNumber.23611.2Sqrt(x)20015.3InsertInterval237第12章贪心法20115.4MergeIntervals23812.1Jumpgame20115.5MinimumWindowSubstring23912.2JumpgameII15.6MultiplyStrings24112.3BestTimetobuyandSellstock20415.7SubstringwithConcatenation12.4BestTimetobuyandsellstockl205ofallwords24412.5LongestSubstringWithoutre15.8Pascal,sTriangle245peatingCharacters20615.9PascalsTriangleIl24612.6ContainerwithMostWater..20715.10SpiralMatrix24715.11SpiralmatrixII248第13章动态规划20915.12ZigZagConversion25013.1Triangle20915.13DivideTwoIntegers25113.2MaximumSubarray15.14TextJustification25313.3PalindromePartitioningII1215.15MaxPointsonaline255目录第1章编程技巧在判断两个浮点数a和b是否相等时,不要用a==b,应该判断二者之差的绝对值fabs(a-b)是否小于某个阈值,例如1e-9。
判断一个整数是否是为奇数,用x%2!=0,不要用x%2=1,因为ⅹ可能是负用char的值作为数组下标(例如,统计字符串中每个字符岀现的次数),要考虑到char可能是负数。
有的人考虑到了,先强制转型为unsignedint再用作下标,这仍然是错的。
正确的做法是,先强制转型为unsignedchar,再用作下标。
这涉及C十整型提升的规则,就不详述了。
以下是关于STL使用技巧的,很多条款来自《EffectiveSTL》这本书。
vector和string优先于动态分配的数组首先,在功能上,由于vector能够保证连续内存,因此一旦分配了后,它的功能跟原始数组相当;其次,如果用new,意味着你要确保后面进行孓delete,一旦忘记了,就会出现BUG,且这样需要都写一行delete,代码不够短再次,声明多维数组的话,只能一个一个new,例如int**ary=newint*[row_num];for(inti=0:i<rownum;++1)ary[i]newint[col_num]用vector的话一行代码搞定vector<vector<int>>ary(row_num,vector<int>(col_num,0))使用reserve来避免不必要的重新分配第2章线性表这类题目考察线性表的操作,例如,数组,单链表,双向链表等。
2数组2.1.1RemoveDuplicatesfromSortedarray描述Givenasortedarray,removetheduplicatesinplacesuchthateachelementappearonlyonceandreturnthenewlengthDonotallocateextraspaceforanotherarray,youmustdothisinplacewithconstantmemoryForexample,GiveninputarrayA=[1,1,2Yourfunctionshouldreturnlength=2,andaisnow[1,2]分析无代码1/LeetCode,RemoveDuplicatesfromSortedArray//时间复杂度0(n),空间复杂度0(1)classSolutiontublicintremoveDuplicates(vector<int>&nums)tif(numsemptyo)return0;intindex=ofor(inti=1:inumssize:1++iif(nums[index]!nums[i])nums[++index]=nums[i]returnindex12.1数组代码2//LeetCode,RemoveDuplicatesfromSortedArray/使用STL,时间复杂度0(n),空间复杂度0(1)classSolutionipublicintremoveDuplicates(vector<int>&nums)treturndistance(numsbegin(),unique(numsbegin(),numsend())代码3/LeetCode,RemoveDuplicatesfromSortedArray/使用STL,时间复杂度0(n),空间复杂度0(1)lassSolutionfublicintremoveDuplicates(vector<int>&nums)treturndistance(numsbegin(,removeDuplicates(numsbegin(,numsend(),numsbegintemplate<typenameInIt,typenameoutit>OutItremoveDuplicates(InItfirst,InItlast,OutItoutput)thile(firstlast)i*output++=*firstfirstupper_bound(first,last,*firstreturnoutput相关题目RemoveDuplicatesfromSortedArrayI,见§2.1.22.1.2RemoveDuplicatesfromSortedArrayII描述Followupfor"RemoveDuplicates"Whatifduplicatesareallowedatmosttwice?Forexample,Givensortedarraya=[1,1,1,2,2,3]Yourfunctionshouldreturnlength=5,andAisnow[1,1,2,2,3分析加一个变量记录一下元素出现的次数即可。
这题因为是已经排序的数组,所以一个变量即可解决。
如果是没有排序的数组,则需要引入一个hashmap来记录出现次数。
4第2章线性表代码1//LeetCode,RemoveDuplicatesfromSortedArrayII//时间复杂度0(n),空间复杂度0(1)//qauthorhex108(https://github.com/hex108)classSolutiontublicintremoveDuplicates(vector<int>&nums)tif(numssize(<=2)returnnumssizeintindex=2for(inti=2:inumssize(:i++)ff(nums[i]!numslindex-2]nums[index++]=nums[i]returnindex;代码2下面是一个更简洁的版本。
上面的代码略长,不过扩展性好一些,例如将occur<2改为occur3,就变成了允许重复最多3次。
//LeetCode,RemoveDuplicatesfromSortedArrayII7/@author虞航仲(http://weibo.com/u/1666779725)//时间复杂度0(n),空间复杂度0(1)lassSolutionfpublicintremoveDuplicates(vector<int>&nums)tconstintn=numssizeintindex=0:for(inti=0:i<n;++i)if(i>0&&i<n-1&nums[i]=nums[i-1]&nums[i]=nums[i1])continue;nums[index++]=nums[i]returnindex;相关题目RemoveDuplicatesfromSortedArray,见§2.1.1
2019/5/20 21:34:34 866KB why
1
用了两种算法,公式法和递归算法界面用OpenGL做的刚学,里面还有B样条没完成,哪个高手做了在把它传上来给我学习一下谢谢O(∩_∩)O~
2020/6/4 7:18:16 1.22MB 贝塞尔 OpenGL Bezier
1
一.C语言基础1.C语言特点(识记);
2.C语言程序基本组成(识记):3.基本数据类型:3.1标识符与基本数据类型(识记),3.2常量与变量(领会)3.3内存的概念(识记)4.基本输入、输出函数(领会):5.运算符与表达式(简单应用):5.1运算符的优先级与结合性二.程序控制结构1.C语言的语句(识记):2.顺序结构(领会):3.分支结构(简单应用):4.循环结构(综合应用):5算法特点6流程图三.构外型数据1.数组(综合应用):1.1定义和引用1.2字符数组1.3指针和数组2.结构类型:2.1结构类型的概念2.2结构类型定义及结构变量说明2.3结构变量的初始化2.4结构数组的初始化3.联合类型(识记):3.1联合类型的概念3.2联合类型定义和联合变量说明3.3联合类型的使用3.4Struct和Union区别4.枚举型(识记):4.1枚举型的定义4.2使用枚举型变量5.typedef的用途(识记):四.指针1.指针与指针变量(识记):2.指针运算符(领会):3.指针与函数4.指针数组与指向指针的指针(识记):5.指针与结构(领会):6.难点和易混淆五.函数1.常见的系统库函数(识记):2.用户自定义函数(简单应用):2.1函数定义2.2函数调用2.3函数声明2.4函数返回值2.5函数参数3.函数之间的数据传递(领会):4.函数的嵌套调用及递归调用(领会):5.局部变量与全局变量(识记):6.变量的存储类型与变量的初始化(领会):7.编译预处理(领会):六.文件1.文件的基本概念,C语言中的两种文件(识记)2.文件的打开、关闭和文件结束测试,文件的读写,文件的定位(识记)2.1文件操作函数2.2文件权限七.算法与编程(综合应用)1使用TurboC集成开发环境调试程序1.1.源程序的编写、编辑与改错(领会);
1.2.集成环境下的求助Help(识记);
1.3.程序的编译与目标代码的生成(识记);
1.4.程序的调试(综合应用):1.5.了解TurboC程序的常见错误提示(识记)。
2重点编程题八位运算1.&2.|3.^4.~5.>————————————————版权声明:本文为CSDN博主「kaikai_sk」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kaikai_sk/article/details/106061539
2019/1/19 6:33:11 7.7MB C语言 大学课程
1
共 401 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡