约瑟夫问题描述:n个人围成一个圈,编号为0,1,2,..,n-1,设定一个常数k,然后从0号开始从1依次报数,报到k的那个人退出圈,后面一个人继续从1开始报数,依次类推,求最后剩下的人的编号 方法1:模拟游戏过程的方法,将n个人串成一个循环链表,不停地去遍历链表,直到最后剩下一个结点。优点:方法直观 ...
分类:
其他好文 时间:
2017-09-04 15:58:37
阅读次数:
223
我们知道,由于二叉树的特性(完美情况下每次比较可以排除一半数据),对其进行查找算是比较快的了,时间复杂度为O(logN)。但是,是否存在支持时间复杂度为常数级别的查找的数据结构呢?答案是存在,那就是散列表(hash table,又叫哈希表)。散列表可以支持O(1)的插入,理想情况下可以支持O(1)的 ...
分类:
编程语言 时间:
2017-09-04 15:08:39
阅读次数:
171
bitset是个好东西。嗯。贼sao~ 很早就讲过但是我并没有弄懂。(现在也不敢说明白) 首先bitset是有常数的,而且常数并不能忽略不计——$(\frac{1}{32})$ 目前我也只是会bitset基本的几个基本函数。。(mmp好像和不会一样) 大致是个啥玩意呢,可以看作一个bool数组、或者 ...
分类:
其他好文 时间:
2017-09-04 11:03:02
阅读次数:
130
基本的计算步骤时间复杂度的定义 一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n))为算法的渐 ...
分类:
其他好文 时间:
2017-09-03 14:56:58
阅读次数:
124
貌似又写出了常数挺优(至少不劣)的代码>v< 930+人AC #49 写了个O(nlogn)貌似比一些人O(n)还快2333333 这题还是先二分答案,check比较麻烦 显然正方形一定以最左上或最右上或最左下或最右下的点为端点来盖,盖了一个之后再拿一个枚举剩下的点作为四个端点来盖,最后一个直接判断 ...
分类:
其他好文 时间:
2017-09-02 17:00:32
阅读次数:
144
差分约束系统 按题目建边就行了,大于等于号是最长路,小于等于号是最短路,边由减号后面连向减号前面,边权是不等号后面的常数项 这里跑最长路,用dfs版spfa跑 #include<bits/stdc++.h> using namespace std; const int N = 10010; stru ...
分类:
其他好文 时间:
2017-09-01 13:41:49
阅读次数:
129
差分约束系统 我们把前缀和看成一个点,每个点之间的关系就是sum[i]-sum[j-1]=?,然后我们拆成sum[i]-sum[j-1]>=?和sum[j-1]-sum[i]>=-?,大于等于号是跑最长路,边从b连向a,边权是符号后面的常数项,然后跑最长路就行了,我们可以用dfs版spfa跑 #in ...
分类:
其他好文 时间:
2017-09-01 13:34:43
阅读次数:
99
一、hash表的基本概念和优缺点比较 hash表又称哈希表 ,是一种数据结构,与链表、二叉树有很大区别。 1、hash表优缺点 优点:能够在常数级的时间复杂度上进行查找,并且插入数据和删除数据简单。(Hash未满的时候速度很快) 缺点:不支持排序,一般比用线性表存储需要更多时间,并且记录的关键字不能 ...
分类:
其他好文 时间:
2017-08-30 19:44:58
阅读次数:
119
0x00 – 报错注入 mysql 报错注入, 我们有时候会遇到没有正常数据回显的注入. 这时候就需要报错注入来获得我们需要的数据. 我们经常用到的有 floor(),updatexml(),extractvalue() 通过查找资料发现还有一些函数. 由于这三个比较通用, 也就是在大部分 mysq ...
分类:
数据库 时间:
2017-08-30 09:56:25
阅读次数:
209
题目描述 Sort a linked list in O(n log n) time using constant space complexity. 思路:时间复杂度为O(nlogn),空间复杂度为常数,用归并排序 在下的代码 时间1162ms 空间27696k /** * Definition ...
分类:
其他好文 时间:
2017-08-27 12:52:56
阅读次数:
216