摘要:优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序每次的push和pop操作,队列都会动态的调整,以达到我们预期的方式来存储。例如:我们常用的操作就是对数据排序,优先队列默认的是数据大的优先级高所以我们无论按照什么顺序push一堆数,最终在队列里总是top出最大的元素。用法:示例:将元素5,3,2,4,6依次push到优先队列中,print其输出。1.标准库默认使用元素类型的<操作符来确定它们之间的优先级关系。priority_queue<int> pq;通过<操作符可知在整数中元素大的优先级高。故示例1中输出结果为: 6
阅读全文
随笔分类 - 其他
摘要:以前就知道约瑟夫问题是模拟,今天我才发现一些约瑟夫问题可以使用数学解法得出!真是强悍啊!约瑟夫问题真是博大精深!当然报数长度不定的应该只有模拟了吧,能用数学做的都是简化过的约瑟夫问题。下面整理如下:1.问题描述:n个人(编号1~n),从1开始报数,报到m的退出,剩下的人继续从1开始报数。按顺序输出列者编号。数学解法复杂度:O(n)。下面的代码摘自雨中飞燕博客,这个公式推的太牛了,我还没看懂。。。#include <stdio.h>#include <conio.h>int main( void ){ int n, i = 0, m, p; scanf("%d%
阅读全文
摘要:OJ很多时候要求浮点数保留有效位数,因此在此我总结几条浮点数转换的规则1.使用printf(".mf")输出的话,系统会自动自舍五入,进位2.使用(int)进行强制转换的话,会自动舍弃后面所有位数,直接取整3.floor()函数,返回值是不大于此数的最大整数 ceil() 返回大于或者等于指定表达式的最小整数4.判断四舍五入可以用:(int)m+(m-(int)m>=0.5)
阅读全文
摘要:每次在用的时候对数据类型范围很模糊,到底会不会溢出,该不该用long long之类的,这次找了相关资料给总结下char1-128到126 unsignedchar10到255 short2-32,768到32,767 unsignedshort20到65,535 long4-2,147,483,648到2,147,483,648 unsignedlong40到4,294,967,295 int4同long unsignedint4同unsignedlong float41.2E-38到3.4E381 double82.2E-308到1.8E3082 bool1true或falselong lo
阅读全文

浙公网安备 33010602011771号