计数排序:它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法
实现原理: 首先将k范围内的数都C[]数组设0,然后遍历一边数组A[],对应的C[A[i]]++,
然后再将A[]数组向高位递加,观察发现每个不同的数字对应的C[]值都是该数字在排序后数组的位置,然后填充重复的数字
代码:
#include
#include
...
分类:
其他好文 时间:
2014-05-07 08:50:13
阅读次数:
254
╮(╯▽╰)╭水题
相连的相同色块缩成点,和相邻的不同色块建边。
以每一个点为起点bfs,求最小答案。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f
#define ll long long
#define...
分类:
其他好文 时间:
2014-05-07 08:15:59
阅读次数:
328
简直没法吐槽华为的服务器质量了,登一次半小时,提交一次等半小时,然后第二个题的结果还不知道呢,服务器就挂了。。。
题目本身倒是还挺简单的。
A题是鸡兔同笼问题:
给出鸡和兔子的头数和脚数(可能不对),让你判断鸡的个数和兔子的个数。。小学经典问题。
关键是不合法的情况,总共有4种。
1、头比脚多。。
2、脚是奇数= =
3、脚>4*头或者脚
so.出来了。
#include
#i...
分类:
其他好文 时间:
2014-05-07 08:12:04
阅读次数:
289
题目链接:uva 12105 - Bigger is Better
题目大意:有n根火柴,要组成一个数字能够整除m,并且最大。
解题思路:dp[i][j]表示用了i个火柴,组成的数字模掉m余j的情况,只不过状态保留的是字符串。
#include
#include
#include
#include
using namespace std;
const int...
分类:
其他好文 时间:
2014-05-07 07:59:52
阅读次数:
314
先用并查集来判断图是否连通,然后再根据欧拉回路的出度和入度的性质来判断是否为欧拉回路。
关键是建边,我们可以把字符串看成是一条边,首字母为出发点,尾字母为目的点,建边。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#de...
分类:
其他好文 时间:
2014-05-07 07:49:15
阅读次数:
324
题目大意:
添加和删除一个数,然后输出中位数。
简单的Splay 维护Splay上有多少个节点就可以了
#include
#include
#define inf 1LL<<60
#define maxn 222222
#define keyTree (ch[ch[root][1]][0])
using namespace std;
typedef long...
分类:
其他好文 时间:
2014-05-07 07:46:42
阅读次数:
405
原题POJ 3487
稳定婚姻问题的解法,男士主动,女士被动,每次找一个光棍的男士对他最满意的女士求婚,如果女士是未婚或者女士当前的未婚夫在女士心目中不如他,就把男士定为女士的未婚夫,一直进行循环。
#include
#include
#include
#include
#include
#define maxn 1000
using namespace std;
int pref[maxn]...
分类:
其他好文 时间:
2014-05-07 07:43:34
阅读次数:
313
题目大意:
给出m个询问,问【l,r】之间的和 ,求出有多少次询问不和之前的矛盾的。
思路分析:
用并查集记录当前节点到根节点的和。
#include
#include
#include
#include
#define maxn 222222
using namespace std;
int set[maxn];
int sum[maxn];
in...
分类:
其他好文 时间:
2014-05-07 07:35:05
阅读次数:
386
#include
using namespace std;
class Base
{
public:
Base(){base = 1; cout
virtual ~Base(){cout
virtual void say(){cout
private:
int base;
static int count;
};...
分类:
编程语言 时间:
2014-05-07 06:59:24
阅读次数:
302
题意:所有n个人围成一个圈,
#include
#include
struct Node
{
int data;
Node *next;
Node *prior;
};
Node* CreateList(Node* &head, int n);
Node* searchk(Node *ptr, Node* &head, int k);
Node* rsearchm(Node...
分类:
其他好文 时间:
2014-05-07 06:26:28
阅读次数:
327