草庐IT

algorithm

全部标签

c++ - 这个基数有多少位?

问题是推导一个公式来确定给定十进制数在给定基数中可能具有的位数。例如:十进制数100006可以分别用2、3、4、5、6、7、8为底的17、11、9、8、7、6、8位数字表示。到目前为止,我得出的公式是这样的:(log10(num)/log10(base))+1。在C/C++中,我使用这个公式来计算上面给定的结果。longlongintsize=((double)log10(num)/(double)log10(base))+1.0;但遗憾的是,在某些情况下公式没有给出正确答案,例如:Number8inbase2:1,0,0,0Numberofdigits:4Formulareturne

c++ - 在哪里可以找到开源二维装箱算法?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion我正在寻找用于矩形和/或不规则形状的2dbin打包的开源(最好是c++)算法。我找到了几篇关于这个主题的论文,但没有代码。

C++ 图顶点着色库或源代码

是否有C++(或任何其他语言)库,其中包含针对graphcoloring问题的算法组合?当然有朴素的贪心顶点着色算法,但我对更有趣的算法感兴趣,例如:wiki的“精确算法”部分提到的算法利用特殊图属性的近似算法,例如图planar或unitdiskgraph.找到fractionalcoloring的算法的图表。最后一个对我来说特别重要。到目前为止我找到的是thispage上的列表但他们都没有上述任何算法。而且,最好的是JoeCulberson'sGraphColoringcode它是在90年代后期实现的,因此在没有记录的API方面已经非常过时了(并不是说这对于这个问题的内容很重要,但

c++ - SPOJ 问题 KPRIMES2

我是这个论坛的新手,不太了解这个论坛的协议(protocol),所以请原谅我的无知。我的问题与spoj问题有关https://www.spoj.pl/problems/KPRIMES2/.对于这个问题,我遇到了TIMELIMITEXCEED。我认为这个程序的瓶颈是生成10^9。有人可以建议如何改进这个筛子,更快地生成素数或如何解决这个问题。这是我的算法草图此程序生成所有形式为2k+1的素数,并将这些素数编码为数组a[i]的32位整数,其中未设置的位表示素数。a[0]编码为3,5,7.......65.a[1]编码67等等。我采用了一个辅助数组bitcnt[],其中bitcnt[i]存储

c++ - STL 算法是否针对速度进行了优化?

我正在测试std::vector上不同循环方式的速度。在下面的代码中,我考虑了5种方法来计算N=10000000个元素的vector的所有元素的总和:使用迭代器使用整数索引使用整数索引,按因子2展开使用整数索引,按因子4展开使用std::accumulate代码是用g++forwindows编译的,用于编译的命令行是:g++-std=c++11-O3loop.cpp-oloop.exe我运行代码4次,测量每个方法的时间,我得到以下结果(时间以微秒为单位,给出了最大值和最小值):迭代器:8002-8007整数索引:8004-9003展开2:6004-7005展开4:4001-5004累积

c++ - 在 A* 遍历后从 map 中移除产生最佳路径的障碍

我使用自己的A*实现遍历了一个16x16的迷宫。一切顺利。然而,在遍历之后,我想找出哪堵墙会给我最佳替代路径。除了移除每个block并在迷宫上重新运行A*,还有什么更聪明、更优雅的解决方案?我想给每个墙节点(被A*忽略)一个暂定的F值,并更改节点结构以也有一个n大小的node*tentative_parent列表,其中n是迷宫中的墙数。这可行吗? 最佳答案 当您将一个节点添加到要考虑的节点列表时,还要添加一个标志,说明通过该节点的路径是否已经穿过墙。possibleNode.heuristic=currentNode.distanc

c++ - std::copy_n 是否适用于重叠范围?

我正在查看N348525.3.1[alg.copy]中的C++标准,它定义了4种算法:复制copy_backwardcopy_ifcopy_n在copy的描述中,有这个注释25.3.1[alg.copy]/3:Requires:resultshallnotbeintherange[first,last)也就是说,当范围重叠时,copy并不总是正确工作(类似于memcpy)。copy_backward和copy_if有相似的语言禁止重叠范围(分别为25.3.1[alg.copy]/14和25.3.1[alg.copy]/8).但是copy_n没有这样的禁止,也没有copy_n_backw

c++ - 使用 STL 排序就地排序表

我有一个存储为(i,j,k)格式(来自稀疏矩阵)的巨大表(大约50Gb)uint32_t*idx1,*idx2;float*vals;uint32_ttablesize;并且我想使用作为idx1和idx2函数的给定比较函数对其进行适当的排序。这可以使用std::sort完成吗?具体来说,稀疏矩阵中每个值为v的非零条目(i,j)的存储方式是将i放在idx1中,将j放在idx2中,将v放在vals中的相应条目中。然后我想根据(i1,j1,v1)对这些条目进行排序(i1我能够搜集到的关于在非标准数据类型上使用std::sort的示例假设每个被比较的项目都是一个类的单个实例;这里每个项目都由不

c++ - 二维点集的压缩 - 想法?

我有一组存储在数组中的二维点。我需要尽可能多地压缩它。最好是快速,但不要破坏交易,压缩率是目标。规则是:一个点=一个32位的结构,存储为(x,y),每个坐标2个字节坐标=8位整数部分和8位小数部分的“float”特殊属性:我可能会根据需要更改点的顺序我按照x和y的整数部分的顺序给出了点,也许我可以利用它,但从我所看到的来看,小数部分几乎是随机的我收到的数组是连续的(从内存的角度来看)到目前为止我研究过的内容:将它们视为普通整数(32位),对它们进行排序(顺序由我选择),然后将其压缩为thisquestion。.将我的数组视为一个普通的char字符串,然后应用aBurrows-Wheel

c++ - 使用快速排序观察二次行为 - O(n^2)

quicksort算法的平均时间复杂度为O(n*log(n)),最坏情况复杂度为O(n^2)。假设Hoare快速排序算法的某些变体,什么样的输入会导致快速排序算法表现出最坏情况的复杂性?请说明与特定快速排序算法(例如主元选择等)的实现细节相关的任何假设,或者它是否来自libc等常用库。一些阅读:AKillerAdversaryforQuicksortQuicksortIsOptimalEngineeringaSortFunctionIntrospectiveSortingandSelectionAlgorithms 最佳答案 Qui