现在位置: 首页 > cl253362499发表的所有文章
  • 11月
  • 05日
综合 ⁄ 共 2403字 评论关闭
康托展开   康托展开的公式是 X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! 其中,ai为当前未出现的元素中是排在第几个(从0开始)。   这个公式可能看着让人头大,最好举个例子来说明一下。例如,有一个数组 s = ["A", "B", "C", "D"],它的一个排列 s1 = ["D", "B", "A", "C"],现在要把 s1 映射成 X。n 指的是数组的长度,也就是4,所以 X(s1) = a4*3! + a3*2! + a2*1! + a1*0! 关键问题是 a4、a3、a2 和 a1 等于啥? a4 = "D" 这个元素在子数组 ["D", "B", "A", "C"] 中是第几大的元素。"A"是第0大的元素,"B"......
阅读全文
  • 06月
  • 07日
综合 ⁄ 共 1624字 评论关闭
std::bitset是STL的一部分,准确地说,std::bitset是一个模板类,它的模板参数不是类型,而整形的数值(这一特性是ISO C++2003的新特性),有了它我们可以像使用数组一样使用位。下面看一个例子: #include<bitset> std::bitset<8> bs;//它是一个模板,传递的参数告诉编译器bs有8个位。 我们接着看上面的代码,通过上面两行的代码我们得到一个bitset的对象bs,bs可以装入8个位,我们可以通过数组的下标运算符来存取: bs[0]=1;//把第0位设置为1 bs[3]=true;//把第3位设置为1,因为true可以转换为1 bs[7]=0;//......
阅读全文
  • 04月
  • 17日
综合 ⁄ 共 830字 评论关闭
被第二个条件给坑了 You are giving candies to these children subjected to the following requirements: Each child must have at least one candy. Children with a higher rating get more candies than their neighbors. 条件二言下之意是如果两个相邻小孩的rating一样,那么它们的candy谁多谁少无所谓。 所以思路是从左遍历到右,再从右遍历到左,记录每个值左右方向的严格递增子序列的长度(如果没有形成严格递增序列,那么长度为0)。所以小孩i 应该得到糖果数量等于相应左(右)严格递增子序列的较大值+1。复杂度O(n......
阅读全文
  • 02月
  • 19日
算法 ⁄ 共 1825字 评论关闭
题意:n个点m条边,q个操作 1:查询x所在集合里面的权值最大的那个点,没有输出-1。2:删除连接a~b的边。 将所有的操作保存下来,然后倒着推,建完边之后删去所有的边,然后每次遇到删边操作的时候就重新添上要删的边,(即把连接边的两点加紧同一个集合里),查询的话就是普通的并查集 #include <map> #include <set> #include <queue> #include <stack> #include <vector> #include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #include <iost......
阅读全文
  • 11月
  • 07日
综合 ⁄ 共 1100字 评论关闭
重新学习一遍<算法导论>,看到了这个问题: 描述一个运行时间为O(nlgn)的算法,使之能在给定一个由n个整数构成的集合S和另一个整数 X 时,判断出S中是否存在有两个其和刚好等于 X 的元素。 Solution: (1)->对整个集合进行排序,可以用快排(含有小文件策略、三者取中策略),时间复杂度O(nlogn),形成一个数组A[n]。  ->设定两个下标pBegin和pEnd,分别指向数组A[n]的头尾,pBegin = 0,pEnd = n -1。  ->若(A[pBegin] +A[pEnd])== X,找到元素对;  ->若(A[pBegin] +A[pEnd])> X,则表示所需的元......
阅读全文
  • 05月
  • 24日
综合 ⁄ 共 29字 评论关闭
http://asmack.freakempire.de/
阅读全文
  • 05月
  • 19日
综合 ⁄ 共 259字 评论关闭
一、工具下载: 官方下载地址:http://www.appcan.cn/experience.html 按照安装指导默认安装即可 二、建立项目 启动AppCan SDK 建立项目 填入在appcan官网上注册的账号和密码,方便后面对应用的管理。 建立好的项目如下: 三、使用模拟器调试 右击index.html,选择预览 四、使用真机调试 1、下载真机调试工具:http://doc.appcan.cn/#!/guide/debug 2、安装到手机 拷贝android_iphone目录到sdcard/widgetone/widgetapp路径下
阅读全文
  • 05月
  • 19日
综合 ⁄ 共 844字 评论关闭
int Hex2Int(char * hex){    printf("hex = %s/n", hex);    int nRetValue = 0;    int len = strlen(hex);    for(int i = 0;  i<len;  i++)    {        int nDecNum;        switch(hex[i])        {            case 'a':            case 'A': nDecNum = 10; break;            case 'b':            case 'B': nDecNum = 11; break;            case 'c':            case 'C':   nDecNum = 12;   break;            case 'd':            case 'D':   nDecNum = 13;   break;            case 'e':            case 'E......
阅读全文
  • 04月
  • 14日
综合 ⁄ 共 1014字 评论关闭
#include <iostream>using namespace std;class  Shape{public: virtual double area()=0;};/*三角形类*/class Trigon:public Shape{protected: double h,w;public: Trigon(double H,double W) {  h=H;  w=W; } double area() {  return h*w/2; }};/*正方形类*/class Square:public Trigon{public: Square (double H,double W):Trigon(H,W){} double area(){return h*w;}};/*圆    类*/class Circle:public Shape{protected: double raius;  /*半径*/public: Circle(double r){raius=r;} double area() {return raius*raius*......
阅读全文
  • 03月
  • 20日
综合 ⁄ 共 1034字 评论关闭
android设备包含两种时间:一种是自然时间,比如几分几点;另一种是设备时间,比如本次系统启动后的开机时间。       获得自然时间:            Date date = new Date(System.currentTimeMillis());            String formatData = date.toLocaleString();            第一句用于返回当前的自然时间,从1970 00:00:00 UTC算起,单位是ms;            第二句用于把这个时间转换为当前的时区,格式为“X年X月X日X时X分X秒”。      该时间实际保存于在android设备的RTC(Real Time Clock)硬件电路中,该电路一般由纽扣电池供电。  ......
阅读全文
  • 03月
  • 16日
综合 ⁄ 共 11635字 评论关闭
1.用c和c++下用栈实现数的进制转换   method1: C的实现 //stack.h #ifndef STACK_H #define STACK_H #define STACK_CAPACITY 20//maximum size of stack typedef int stackEle; typedef struct { stackEle myArray[ STACK_CAPACITY ]; int myTop; }stack; //construct(initialize) an empty stack stack *stack_init(void); //return 1 if stack is empty and 0 otherwise int empty(stack *); //retrieve top element of the stack stackEle top(stack* ); //add an element at the top of the stack void push(stack*,stackEle......
阅读全文
  • 02月
  • 10日
综合 ⁄ 共 1124字 评论关闭
一、编译器:      就是将“高级语言”翻译为“机器语言(低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 汇编程序 (assembler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables) 二、交叉编译器:    在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台......
阅读全文