一、计数排序
稳定、 当输入的元素是n 个小区间(0到k)内整数时,它的运行时间是 O(n + k),空间复杂度是O(n)。
const int K = 100;
//计数排序:假设输入数据都属于一个小区间内的整数,可用于解决如年龄排序类的问题
//Input:A[0, ..., n-1], 0 <= A[i] < K
//Output:B[0, ..., n-1], sorting of A...
分类:
其他好文 时间:
2014-07-08 21:24:36
阅读次数:
232
旋转可以分为n种置换,对应的不同等价类分别是gcd(n,i)个i=0时不动,有n个
翻转分为奇偶讨论,奇数时有n种置换,每种有n/2+1个
偶数时有n种置换,一半是n/2+1个,一半是n/2个
#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;...
分类:
其他好文 时间:
2014-07-08 19:05:15
阅读次数:
163
weak_ptr是对对象的一种弱引用,它不会增加对象的引用计数。weak_ptr和shared_ptr之间可以相互转换,shared_ptr可以直接赋值给week_ptr,week_ptr可通过调用lock函数来获得shared_ptr(如果对象已经被释放,则返回一个空的shared_ptr)。
单纯使用shared_ptr有时会产生问题,考虑下面的代码:
1 class...
分类:
编程语言 时间:
2014-07-08 17:10:39
阅读次数:
289
汇编考完了,悲剧的93分,,,,,以后的汇编就用的少了,凡是用到都来这里做点代码笔记:
一、错误总结:
1、程序最后END +起始标号,否则U的时候需要自己手动找起始位置而且有可能程序翻译指令错误
2、对内存单元进行操作的时候,注意类型的指定,比如inc [si]必然是错的因为没有类型,还有处理数据计数器si注意加一
3、凡...
分类:
其他好文 时间:
2014-07-08 16:19:40
阅读次数:
124
哈哈哈,简单polya,公式自己推导。
不过这题需要用到大数,很久没写Java,调了好久。
import java.math.*;
import java.util.*;
import java.io.*;
public class Main{
public static void main(String args[]){
Scanner cin=new Scanner(Syst...
分类:
其他好文 时间:
2014-07-08 14:45:59
阅读次数:
240
之前我们介绍了几种O(nlgn)的排序算法:快速排序、合并排序和堆排序,本节我们介绍基于比较的排序算法的下界以及几个线性时间的排序算法——计数排序、基数排序、桶排序。...
分类:
其他好文 时间:
2014-07-08 14:10:28
阅读次数:
243
枚举位移肯定超时,对于一个位移i,我们需要的是它的循环个数,也就是gcd(i,n),gcd(i,n)个数肯定不会很多,因为等价于n的约数的个数。
所以我们枚举n的约数,对于一个约数k,也就是循环个数为n/k这样的个数有phi[k]种,证明网上有很多。所以答案就是 phi[k]*(pow(n,n/k)) (k是n的所有约数)
由于约数会很大所以不能打表,只能单个算。
再由于最后要除以n,如果做...
分类:
其他好文 时间:
2014-07-08 14:05:43
阅读次数:
170
Cocos2d-x使用的内存管理方式是引用计数,引用计数是一种很有效的机制,通过给每个对象维护一个引用计数器,记录该对象当前被引用的次数。当对象增加一次引用时,计数器加1;而对象失去一次引用时,计数器减1;当引用计数为0时,标志着该对象的生命周期结束,自动触发对象的回收释放。引用计数的重要规则是每一个程序片段必须负责任地维护引用计数,在需要维持对象生存的程序段的开始和结束分别增加和减少一次引用计数,这样就可以实现十分灵活的内存管理。...
分类:
其他好文 时间:
2014-07-08 13:49:42
阅读次数:
224
shared_ptr是一个引用计数智能指针,用于共享对象的所有权。它可以从一个裸指针、另一个shared_ptr、一个auto_ptr、或者一个weak_ptr构造。还可以传递第二个参数给shared_ptr的构造函数,它被称为删除器(deleter)。删除器用于处理共享资源的释放,这对于管理那些不是用new分配也不是用delete释放的资源时非常有用。shared_ptr被创建后,就可以像普通指...
分类:
编程语言 时间:
2014-07-08 13:26:57
阅读次数:
191
Linux系统中很多时候都用到1970-1-100:00:00为起点的秒数计时(这个不知道是叫什么计数法,窃以为应该会有个牛x的名字),这个秒数和可读的日期之间转换可以采用以下方法1、日期转秒数,这个比较常见,date+%s即可date+%s
14046505122、秒数转日期,这个用的比较少,也是用date..
分类:
系统相关 时间:
2014-07-08 09:15:03
阅读次数:
197