求比赛排名

n支队伍比赛,分别编号为0,1,2。。。。n-1,已知它们之间的实力对比关系,
存储在一个二维数组w[n][n]中,w[i][j] 的值代表编号为i,j的队伍中更强的一支。

所以w[i][j]=i 或者j,现在给出它们的出场顺序,并存储在数组order[n]中,
比如order[n] = {4,3,5,8,1......},那么第一轮比赛就是 4对3, 5对8。.......

胜者晋级,败者淘汰,同一轮淘汰的所有队伍排名不再细分,即可以随便排,
下一轮由上一轮的胜者按照顺序,再[......]

继续阅读

MongoDB持续灌入大数据遇到的一些问题

首先这类NoSQL数据库的设计宗旨基本是“读多写少”。

而我们的需求是:有一大批数据(5亿条记录,每条100B左右)。需要灌入MongoDB。

考虑到数据规模,事先已经做好了Sharding,10台机器。

1、并发12进程,持续灌入数据。

一开始速度很快,基本10W/s,到了1亿6千万左右,开始变成龟速。经过仔细检查,mongos中报大量如下错误:
Wed Jun 6 16:56:41 [conn33] warning: splitChunk failed - cmd[......]

继续阅读

和谐字符串匹配

给一串很长字符串,要求找到符合要求的字符串,例如目的串:123
1******3***2 ,12*****3这些都要找出来。

这个很难概述啊,其实和某G很相似的,所以我给了个标题“和谐字符串匹配”,你懂的。

其实我把这题简化了,我们假设它和某和谐系统一样,对整个字符串只提出Pass和Reset。
#define MAX 256

int hexie(char* pat, char* str)
{
int flag[MAX];
char* ptr = st[......]

继续阅读

MongoDB中的索引操作

1、启用索引

下面的命令对id字段建索引,1表示是升序。如果-1是降序。
db.collection.ensureIndex({id:1}, {unique:true, dropDups:true, background:true});
2、删除索引

删除id的索引
db.collection.dropIndex({id:1})
删除全部索引
db.collection.dropIndexes();
3、重建索引
db.collection.reIndex()[......]

继续阅读

求从1到n中1出现的次数

题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。

例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。

编程之美上的原题

基本思路1:

每次判断各位是否为1,计数。然后依次/=10即可。

时间复杂度O(N*lgN)
#include <stdio.h>

int countone(int num)
{
int cnt = 0;
while(num)
{
if(num%[......]

继续阅读