Updates from 十一月, 2015 Toggle Comment Threads | 键盘快捷键

  • jinzihao pm1:27 on 2015年11月30日 链接地址 | 回复
    Tags: ,   

    暴力破解zip密码用ziperello就不错…无需注册码,看起来也没有病毒…至于速度,不敢说是最快的,不过密码为233的一个zip文件确实是秒出了…

     
  • jinzihao pm9:41 on 2015年11月29日 链接地址 | 回复
    Tags:   

    本周末第一次参加了CTF(Capture The Flag)比赛,结果是以一题之差惜败…不过收获太大了,具体内容稍后更新…

     
  • jinzihao pm6:02 on 2015年11月26日 链接地址 | 回复
    Tags:   

    C++程序中大量使用new会拖慢速度,对于有些题可能就超时了,这是因为每次new都需要动态分配一块内存。如何降低此处的时间开销?用placement new(注意第1行和第8行):

    #include 
    ......
    char *space = new char[1 << 29];
    int offset = 0;
    MyClass* instance[1000000];
    for (int i = 0; i < 1000000; ++i) {
        offset += sizeof(MyClass);
        instance[i] = new(space + offset) MyClass;
    }
    ......
    

    每次新建MyClass对象时,通过placement new手动指定它在内存中的位置,可以大大降低new的时间开销。
    实际上offset += sizeof(MyClass)一行中,每次offset自增的量常常可以略微小于sizeof(MyClass),在内存限制特别苛刻的题目中可以通过实验找出最小增量。

     
  • jinzihao pm9:56 on 2015年11月12日 链接地址 | 回复
    Tags: Java,   

    今天写Java的作业时,要写一个归并排序,写了这样一行代码:

    hi = start + step << 1;
    

    本想达到

    hi = start + step * 2;
    

    的效果,不料结果完全错误...
    实际上在C、C++、Java中,左移、右移运算符的优先级都是低于乘除和加减的,用<<、>>替代* /时一定要加上括号:

    hi = start + (step << 1);
    
     
    • jinzihao 下午10:48 on 2015年11月27日 链接地址 | 回复

      今天写了一个char *newSpace = new char[1 << 29 + 1 << 27]; 又掉进坑里了......

    • jinzihao 下午9:27 on 2016年5月20日 链接地址 | 回复

      今天写人工智能大作业,再次掉进了同一个坑里…

  • jinzihao pm10:31 on 2015年11月6日 链接地址 | 回复
    Tags: Raspberry Pi   

    由于本站所在的服务器(一台放在宿舍里的raspberry pi)最近由于宿舍夜间熄灯断电导致文件系统损坏…已经回退到20151027的备份…有些评论丢失了…在此表示歉意…
    另外…有没有支持边充边放而且边充边放时还能提供1A以上的电流的移动电源?或者能撑一整夜且价格在300以内的UPS?求推荐…

     
c
写新的
j
下一篇文章/下一个回复
k
前一篇文章/以前的回复
r
回复
e
编辑
o
显示/隐藏 回复
t
回到顶部
l
go to login
h
show/hide help
shift + esc
取消