位置:首页 » 技术 » Java动态规划 兑现最长公共子序列以及最长公共子字符串

Java动态规划 兑现最长公共子序列以及最长公共子字符串

日期:2013-10-01 阅读:0num
Advertisement

Java动态规划 实现最长公共子序列以及最长公共子字符串

动态规划法

经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加。

为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法。

【问题】 求两字符序列的最长公共字符子序列

问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列。令给定的字符序列X=“x0,x1,…,xm-1”,序列Y=“y0,y1,…,yk-1”是X的子序列,存在X的一个严格递增下标序列<i0,i1,…,ik-1>,使得对所有的j=0,1,…,k-1,有xij=yj。例如,X=“ABCBDAB”,Y=“BCDB”是X的一个子序列。

考虑最长公共子序列问题如何分解成子问题,设A=“a0,a1,…,am-1”,B=“b0,b1,…,bm-1”,并Z=“z0,z1,…,zk-1”为它们的最长公共子序列。不难证明有以下性质:

(1) 如果am-1=bn-1,则zk-1=am-1=bn-1,且“z0,z1,…,zk-2”是“a0,a1,…,am-2”和“b0,b1,…,bn-2”的一个最长公共子序列;

(2) 如果am-1!=bn-1,则若zk-1!=am-1,蕴涵“z0,z1,…,zk-1”是“a0,a1,…,am-2”和“b0,b1,…,bn-1”的一个最长公共子序列;

(3) 如果am-1!=bn-1,则若zk-1!=bn-1,蕴涵“z0,z1,…,zk-1”是“a0,a1,…,am-1”和“b0,b1,…,bn-2”的一个最长公共子序列。

这样,在找A和B的公共子序列时,如有am-1=bn-1,则进一步解决一个子问题,找“a0,a1,…,am-2”和“b0,b1,…,bm-2”的一个最长公共子序列;如果am-1!=bn-1,则要解决两个子问题,找出“a0,a1,…,am-2”和“b0,b1,…,bn-1”的一个最长公共子序列和找出“a0,a1,…,am-1”和“b0,b1,…,bn-2”的一个最长公共子序列,再取两者中较长者作为A和B的最长公共子序列。

求解:

引进一个二维数组c[][],用c[i][j]记录X[i]与Y[j] 的LCS 的长度,b[i][j]记录c[i][j]是通过哪一个子问题的值求得的,以决定搜索的方向。
我们是自底向上进行递推计算,那么在计算c[i,j]之前,c[i-1][j-1],c[i-1][j]与c[i][j-1]均已计算出来。此时我们根据X[i] = Y[j]还是X[i] != Y[j],就可以计算出c[i][j]。

问题的递归式写成:

Java动态规划 兑现最长公共子序列以及最长公共子字符串

回溯输出最长公共子序列过程:

Java动态规划 兑现最长公共子序列以及最长公共子字符串

算法分析:
由于每次调用至少向上或向左(或向上向左同时)移动一步,故最多调用(m * n)次就会遇到i = 0或j = 0的情况,此时开始返回。返回时与递归调用时方向相反,步数相同,故算法时间复杂度为Θ(m * n)。

Java代码实现:

public class LCSProblem
{
    public static void main(String[] args)
    {
        //保留空字符串是为了getLength()方法的完整性也可以不保留
        //但是在getLength()方法里面必须额外的初始化c[][]第一个行第一列
        String[] x = {"", "A", "B", "C", "B", "D", "A", "B"};
        String[] y = {"", "B", "D", "C", "A", "B", "A"};

        int[][] b = getLength(x, y);

        Display(b, x, x.length-1, y.length-1);
    }
    /**
     * @param x
     * @param y
     * @return 返回一个记录决定搜索的方向的数组
     */
    public static int[][] getLength(String[] x, String[] y)
    {
        int[][] b = new int[x.length][y.length];
        int[][] c = new int[x.length][y.length];

        for(int i=1; i<x.length; i++)
        {
            for(int j=1; j<y.length; j++)
            {
                //对应第一个性质
                if( x[i] == y[j])
                {
                    c[i][j] = c[i-1][j-1] + 1;
                    b[i][j] = 1;
                }
                //对应第二或者第三个性质
                else if(c[i-1][j] >= c[i][j-1])
                {
                    c[i][j] = c[i-1][j];
                    b[i][j] = 0;
                }
                //对应第二或者第三个性质
                else
                {
                    c[i][j] = c[i][j-1];
                    b[i][j] = -1;
                }
            }
        }   

        return b;
    }
    //回溯的基本实现,采取递归的方式
    public static void Display(int[][] b, String[] x, int i, int j)
    {
        if(i == 0 || j == 0)
            return;

        if(b[i][j] == 1)
        {
            Display(b, x, i-1, j-1);
            System.out.print(x[i] + " ");
        }
        else if(b[i][j] == 0)
        {
            Display(b, x, i-1, j);
        }
        else if(b[i][j] == -1)
        {
            Display(b, x, i, j-1);
        }
    }
}

最长公共子字符串:类似最长子序列,只是公共子字符串要求必须是连续的。
java实现代码如下:

public class stringCompare {
    //在动态规划矩阵生成方式当中,每生成一行,前面的那一行就已经没有用了,因此这里只需使用一维数组,而不是常用的二位数组
    public static void getLCString(char[] str1, char[] str2) {
        int len1, len2;
        len1 = str1.length;
        len2 = str2.length;
        int maxLen = len1 > len2 ? len1 : len2;

        int[] max = new int[maxLen];// 保存最长子串长度的数组
        int[] maxIndex = new int[maxLen];// 保存最长子串长度最大索引的数组
        int[] c = new int[maxLen];

        int i, j;
        for (i = 0; i < len2; i++) {
            for (j = len1 - 1; j >= 0; j--) {
                if (str2[i] == str1[j]) {
                    if ((i == 0) || (j == 0))
                        c[j] = 1;
                    else
                        c[j] = c[j - 1] + 1;//此时C[j-1]还是上次循环中的值,因为还没被重新赋值
                } else {
                    c[j] = 0;
                }

                // 如果是大于那暂时只有一个是最长的,而且要把后面的清0;
                if (c[j] > max[0]) {
                    max[0] = c[j];
                    maxIndex[0] = j;

                    for (int k = 1; k < maxLen; k++) {
                        max[k] = 0;
                        maxIndex[k] = 0;
                    }
                }
                // 有多个是相同长度的子串
                else if (c[j] == max[0]) {
                    for (int k = 1; k < maxLen; k++) {
                        if (max[k] == 0) {
                            max[k] = c[j];
                            maxIndex[k] = j;
                            break; // 在后面加一个就要退出循环了
                        }
                    }
                }
            }
            for (int temp : c) {
                System.out.print(temp);
            }
            System.out.println();
        }
        //打印最长子字符串
        for (j = 0; j < maxLen; j++) {
            if (max[j] > 0) {
                System.out.println("第" + (j + 1) + "个公共子串:");
                for (i = maxIndex[j] - max[j] + 1; i <= maxIndex[j]; i++)
                    System.out.print(str1[i]);
                System.out.println(" ");
            }
        }
    }

    public static void main(String[] args) {

        String str1 = new String("binghaven");
        String str2 = new String("jingseven");
        getLCString(str1.toCharArray(), str2.toCharArray());
    }
}

输出:

000000000
010000000
002000001
000300000
000000000
000000010
000000100
000000020
001000003
第1个公共子串:
ing
第2个公共子串:
ven

相关文章
  • Java动态规划 兑现最长公共子序列以及最长公共子字符串 Java动态规划 兑现最长公共子序列以及最长公共子字符串

    Java动态规划 实现最长公共子序列以及最长公共子字符串 动态规划法 经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题.简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加. 为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法. [问题] 求两字符序列的最长公共字符子序列 问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)

  • 找工作常识储备(2)-数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串 找工作常识储备(2)-数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串

    找工作知识储备(2)---数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串 作者:寒小阳 时间:2013年9月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/11969497. 声明:版权所有,转载请注明出处,谢谢. 0.前言 这一部分的内容原本是打算在之后的字符串或者数组专题里面写的,但看着目前火热进行的各家互联网公司笔试面试中,出现了其中的一两个内容,

  • 最长公共子序列跟最长公共子序列

    最长公共子序列和最长公共子序列 最长公共子序列: 例如:abcfbc abfcb 答案是:4: 最长公共子串 :答案是: 2: 代码: 最长公共子序列: #include<cstdio> #include<cstring> #define max(x,y) (x>y?x:y) int len1,len2; int dp[1010][1010]; int bj[1010][1010]; char ch1[1010],ch2[1010]; void LCS() //lcs最长公共

  • 动态规划算法解最长公共子序列LCS问题 动态规划算法解最长公共子序列LCS问题

    第一部分.什么是动态规划算法 ok,咱们先来了解下什么是动态规划算法. 动态规划一般也只能应用于有最优子结构的问题.最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求并不能完全满足,故有时需要引入一定的近似).简单地说,问题能够分解成子问题来解决. 动态规划算法分以下4个步骤: 描述最优解的结构递归定义最优解的值按自底向上的方式计算最优解的值 //此3步构成动态规划解的基础.由计算出的结果构造一个最优解. //此步如果只要求计算最优解的值时,可省略. 好,接下来,咱们讨论适合采用动

  • 算法系列札记6(动态规划—最长公共子序列/串lcs)

    算法系列笔记6(动态规划-最长公共子序列/串lcs) 子序列要求元素顺序一致就可以了,而字串必须是连续的.如ABCBDAB与BDCABA两个字符串,最长公共子序列有BCBA.BDAB和BCAB, 而最长公共字串只有AB和BD<连续>.当然这里的求解只求一个,但通常是这样直接说求最长公共子串,子序列,准确的应该是之一. 最长公共子序列 法一:穷举法 检查字符串x所有字序列,共有2^m个,检查它是否在y字符串中出现,每个需要O(n),时间复杂度为指数级的. 法二:动态规划(DP) 将两个字符串x[

  • 算法导论-动态规划(最长公共子序列) 算法导论-动态规划(最长公共子序列)

    算法导论--动态规划(最长公共子序列) 最长公共子序列问题(LCS) 给定两个序列X=⟨x1,x2,x3...xm⟩和Y=⟨y1,y2,y3...xn⟩,求X和Y的最长公共子序列. 例如:X=⟨A,B,C,B,D,A,B⟩,和Y=⟨B,D,C,A,B,A⟩,的最长公共子序列为⟨B,C,B,A⟩,长度为4: 对于此问题,可以采用暴力求解的方式来比对,即穷举出X的所有子序列,用每个子序列与y做一 一比较.假如X序列共有m个元素,对每个元素可以决定选或不选,则X的子序列个数共有2m个,可见与长度m呈指

  • 动态规划-最长公共子序列

    动态规划--最长公共子序列 X和Y,当另一序列Z既是X的子序列又是Y的子序列时,若给定序列X={x1,x2,-,xm},则另一序列Z={z1,z2,-,zk},是X的子序列是指存在一个严格递增下标序列{i1,i2,-,ik}使得对于所有j=1,2,-,k有:zj=xij.例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7}. 同理,若序列Z既是X的子序列同时也是Y的子序列,则称Z为X和Y的公共子序列.其中最长的子序列称为最长公共

  • 动态规划解最长公共子序列有关问题 动态规划解最长公共子序列有关问题

    动态规划解最长公共子序列问题 动态规划法 经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题.简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加. 为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法. [问题] 求两字符序列的最长公共字符子序列 问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不

  • 【动态规划之】求最长公共子序列有关问题 【动态规划之】求最长公共子序列有关问题

    [动态规划之]求最长公共子序列问题 /** ** [email protected] ** http://blog.csdn.net/MonkeyAndy **/ 首先介绍动态规划方法的相关知识 动态规划方法的基本思想: 分成若干个子问题,先求解子问题,然后根据子问题的解求得原问题的解.经分解得到的子问题往往不是互相独立的.可重复利用! 其核心思想就是分治,分治方法的特点是分解后的子问题相对独立,可以通过简单的合并算法得到原问题的解! 动态规划方法的应用对象: 优化问题: 一个优化问题可能有很多

  • 动态规划 LCS 求两个序列A,B中全部的最长公共子序列 动态规划 LCS 求两个序列A,B中全部的最长公共子序列

    动态规划 LCS 求两个序列A,B中所有的最长公共子序列 动态规划 求两个序列A,B中所有的最长公共子序列 第一部分.什么是动态规划算法 动态规划一般也只能应用于有最优子结构的问题.最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求并不能完全满足, 故有时需要引入一定的近似).简单地说,问题能够分解成子问题来解决. 动态规划算法分以下4个步骤: 1,描述最优解的结构 2,递归定义最优解的值 3,按自底向上的方式计算最优解的值 //此3步构成动态规划解的基础. 4,由计算出的结果构造

  • 动态规划解最长公共子序列问题(转) 动态规划解最长公共子序列问题(转)

     动态规划法 经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题.简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加. 为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法. [问题] 求两字符序列的最长公共字符子序列 问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列

  • 动态规划解最长公共子序列有关问题(转) 动态规划解最长公共子序列有关问题(转)

    动态规划解最长公共子序列问题(转)  动态规划法 经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题.简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加. 为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法. [问题] 求两字符序列的最长公共字符子序列 问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(

  • 动态规划解最长公共子序列问题 动态规划解最长公共子序列问题

    动态规划法 经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题.简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加. 为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法. [问题] 求两字符序列的最长公共字符子序列 问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给

  • 最长公共子序列及Python实现 最长公共子序列及Python实现

    1 最长公共子序列问题描述 一个给定序列的子序列是在该序列中删除若干元素后得到的序列,确切的说,若给定序列X = {x1,x2,...xm},则另一个序列,Y= {y1,y2...,yn},当另一个序列即是X的子序列又是Y的子序列时,称Z是序列X也Y的公共子序列.最长公共子序列问题为给定序列X和Y,找到所有公共子序列中最长的一个(非连续). 2 最长公共子序列的结构 解最长公共子序列问题的最容易想到的方法是穷举法,即对X的所有子序列,检查它是否也是Y 的子序列,从而确定它是否为X和Y 的公共子序

  • 最长公共子序列有关问题

    最长公共子序列问题 最长公共子序列问题很早就在很多论坛上见过,前几天看到一个人发了一篇帖子,心血来潮就去看算法导论上的动态规划部分,关于这个问题不再细述,直接贴C++实现的具体代码了. //做大公共子序列问题 #pragma once #include <string> using std::string; #define OVER 1 //书中使用箭头符号表示的,这里用宏代替 #define LEFT 2 #define LEFTOVER 3 class LCS { private: str

  • 最长公共子序列,该如何处理

    最长公共子序列 前面有很多人问了最长公共子串的问题 ,但这个不是最长公共子串,而是最长公共子序列. 问题差别在于:子串必须是连续的,但子序列不必. 如:ABCBDAB和BDCABA最长公共子串只能是AB或BD,但最长公共子串是BCBA. 输入两个序列,求最长公共子序列.谢谢! ------解决方案-------------------- [供参考] 一.算法思想 一个给定序列的子序列是在该序列中删去若干元素后得到的序列.给定两个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X

  • 求解两个序列的全部最长公共子序列(LCSes) 求解两个序列的全部最长公共子序列(LCSes)

    求解两个序列的所有最长公共子序列(LCSes)  摘要 本篇博文提供了实现求解所有最长公共子序列的程序实现,并提供输出所有公共子序列的方法解释,需要具备基础知识是求解一个公共子序列的动态规划方法,请自行查阅相关资料. 题目重述 子序列概念:设X=< x1, x2,┅, xm>,若有1≤i1< i2< ┅ <ik≤m,使得Z=< z1, z2,┅, zk> = < xi1, xi2,┅, xik>,则称Z是X的子序列,记为Z<X. 例如: X=

  • 字符串的最长公共子序列问题

    [cpp] // 最长公共子序列问题.cpp : Defines the entry point for the console application. // /*问题:给出两个字符串,找出它们的最长公共子序列 什么是最长公共子序列? 最长公共子序列,英文缩写为LCS(Longest Common Subsequence). 其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列, 且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列. 而最长公共子串(要求连续)和最长

  • 最长公共子序列(南阳市oj36)(最长公共子序列)

    最长公共子序列(南阳oj36)(最长公共子序列) 最长公共子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列. tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence).其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列. 输入 第一行给出一个

  • 最长公共子序列问题

    算法描述: 问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字符序列X="x0,x1,-,xm-1",序列Y="y0,y1,-,yk-1"是X的子序列,存在X的一个严格递增下标序列,使得对所有的j=0,1,-,k-1,有xij=yj.例如,X="ABCBDAB",Y="BCDB"是X的一个子序列.考虑最长公共子序列问题如何分解成子问题,设A=&qu

最新文章
  • 一年级语文教学工作总结

    学期结束了,回想这学期以来的教学工作,我认真备课,积极参加教材培训,认真听取其他老师的意见,改进教学方式.定期做好工作总结,总结教学经验,把学到的经验再用到教学中,充分发挥调动学生学习的积极性,发挥他们的主体作用.让学生获得所应掌握的语文知识,使语文学习活动成为一个生动活泼的.主动的和富有个性的过程.努力吻合当前语文课程改革的新理念. 一年级小学生没养成习惯,比如上课不专心听讲,作业态度不认真,不及时,上课爱说话.爱做小动作等等.因此我先在思想方面进行教育,通过平时讲故事.比一比谁做的好等方式培

  • PS中动作与批处理的应用技巧

    1.要仅播放一个动作中的一个步骤,可以选择步骤并按下Ctrl点击"播放"按钮,在"动作"浮动面板下方的"播放选定的动作".(窗口>动作) 注意:要改变一个特定命令步骤的参数,只需要双击这个步骤,显示出相关的对话框:任何输入的新的值都会自动被记录下来. 2.要想从某个指定的步骤返回播放,只需要选中需要开始播放的步骤,接着点击"动作"浮动面板下方的"播放选定的动作"按钮即可. 3.如果你正在记录下的一个动

  • 摧毁地球的最大可能:外星人利用反物质武器 摧毁地球的最大可能:外星人利用反物质武器

    一项在2005年的研究称距离地球大约6000光年的恒星爆发事件可摧毁地球,其产生的强大伽马射线破坏地球上空的臭氧层,并导致地球上的生物灭绝.最新的天文学观测显示,地球在的轨道环境很稳定,事实上能摧毁地球的恒星事件是太阳的衰亡,太阳的生命末期会发生膨胀,地球轨道恰好被完全吞没.但是,还有一些意外比恒星事件更加可怕,比如我们遇到强大而可怕的外星高级文明. 有研究称距离地球6000光年的恒星爆发产生的强伽马射线可摧毁地球生物 许多科幻小说中都构思了外星人将地球文明摧毁,比如距离地球大约4光年远的半人马

  • 养生瑜伽动作有哪些 养生瑜伽动作有哪些

    现在的都市人,周一到周五都坐在办公室上班,即使到了周末,也宁愿在家里闲呆着,也不愿意出去运动运动,难免会导致身体积聚多余脂肪,甚至身体不适.下面为大家介绍一种流行的"养生瑜伽",既能瘦身减肥之余,还能缓解例如肩颈酸痛.痛经等不适症状. 一.缓解肩膀僵硬 动作1:一边吸气,一边耸肩 坐在椅子上,挺直腰杆,双手手臂在胸前交叉,手掌搭在肩膀上.一边用鼻子慢慢地吸气,一边把肩膀耸起来. 动作2:放低手肘,同时把肩膀往下压 一边用鼻子呼气,一边把手肘放低,搭在肩膀上的手掌用力,慢慢地尽量把肩膀往

  • Oracle数据库SYS密码的找回方法

    有两种方法找回sys密码: 1.用windows验证(请确认OracleBaseDir/ora92/network/admin/sqlnet.ora文件中 SQLNET.AUTHENTICATION_SERVICES= (NTS) 这行未被注释),然后敲入 sql> connect sys/随意密码 as sysdba; sql> alter user sys identified by 'new_password'; 2.通过orapwd命令重新创建密码文件(每个DB有自己的密码文件) 先把

  • 百度战略投资百分之百 布局移动终端市场 百度战略投资百分之百 布局移动终端市场

    百度公司今天宣布战略投资深圳市百分之百数码科技有限公司(以下简称百分之百),成为其最大的战略投资者,具体投资金额并未对外公布. 据悉,百分之百成立于2006年,首创小额直供模式,利用互联网技术,通过对移动终端产品的分销业务流程进行再造并全面电子化,同时借助现代物流及供应链金融服务等手段,为全国中小城市手机店提供小批次的直接供货,这解决了中小手机店面供货难的问题,也消除层层代理环节. 百分之百与百度一直保持着合作关系,此前推出的多款智能手机均搭载百度云ROM.分析人士认为,百度战略投资百分之百公司

  • 花式虐狗大赛!大学生高逼格秀恩爱 花式虐狗大赛!大学生高逼格秀恩爱

    近日,一组花式虐狗照片惊现网络.图中情侣们或依偎或对视,爱慕之情溢于言表.在这个充斥着网骗先生,照假小姐的时代,这组无任何过分修饰的,展现年轻人甜美爱情的照片一炮而红. 据可靠小道消息提供源老王同志介绍,这组照片是由专注于校园青春摄影O2O的茄子拍APP组织的"北京高校情侣恩爱值PK大赛"之中的照片.照片中的情侣都是真实的北京高校的大学生.照片里展现的都是他们在日常生活中最自然的小甜蜜. 废话不多说了,让我们来一起欣赏一下这组照片吧,希望你能从中发现到藏在你身边的甜蜜.

  • Win10怎么激活? Win10怎么激活?

    近日,有媒体报道称,新一代Win10系统如果不激活,会经常出现卡顿现象,对于用户来说,体验上就大打折扣了.那么Win10怎么激活? 下面小编为大家详细介绍下Win10激活的几种方法,下面是详细介绍. Win10怎么激活? 获取秘钥很重要 1.安装系统过程中激活 Windows系统激活的方式有很多种,Win10也不例外,在安装Win10正式版的时候,在系统安装的过程,您就可以直接输入Win10秘钥来完成激活,对于安装过程中,暂时没有正版秘钥的用户,可以先使用免费试用秘钥来激活,后期可以再在Win1

  • 在Word2007中如何抠除背景色 在Word2007中如何抠除背景色

    图片中有背景色是为了突出和烘托图片中的主体内容而设置的,但是我们在编辑文档过程中,图片的背景色往往很多余,造成跟文档背景格格不入,显得不那么和谐.如何将背景色去掉让图片更好的融入文档中,这是个经常需要用到的小技巧. 下面就以以下文档中的图片教大家如何抠除背景颜色. 1.鼠标左键单击选中要修改的图片,切换到[图片工具]-[格式]选项卡,在[调整]选项组中,单击[重新着色],在弹出的下拉列表中选择[设置透明色]. 2.这时我们会发现鼠标指针变成了一支笔的形状,将它移到背景色上,单击鼠标左键,背景色就

  • 企业网站的运营推广方案

    第一部分 网络线上推广 1)内容:做成用户所最关注,最吸引人的内容 我们要做的就是内容整合,形成具有足够吸引力的鲜明主题,呈现在,频道主页及推广页面上.服务至上,细节到位,给浏览者足够大的想象,让普通的同行企业产生一种距离感.体现"简约而不简单"整体.我想这就是所谓的高端. 2)网站标题栏(Title)的内容优化: 写好网相关简要介绍,不超过30字,然后将其改编,尽可能合理的导入与网站所在行业相关的关键词,换句话说,要写成"搜索引擎教程版"的网站介绍. 3)网站内容

热门推荐
  • Mailbox,卒 Mailbox,卒 从诞生开始,Mailbox 一直就不是我的菜.而且我一度觉得,Mailbox 所有的人气都来自于测试期的邀请制.通过有限的邀请获得关注度,除了 Gmail 以外,我印象中能靠这样的手段大获成功的非谷歌产品几乎没有. 邀请值提升了产品的逼格和神秘感,但是相对来说对于产品本身素质的要求就非常高,一个还不怎么颠覆的服务野心勃勃的竖起牌坊,用户就算是千方百计获得的邀请,用上几把就没有任何新鲜感了. Mailbox 所有的东西都不是新的,手势不是.整合 Dropbox.GTD 也不是,早期仅仅是个比 Gm
  • 那些年我们用过的显示性能指标 那些年我们用过的显示性能指标 注:Google 在自己文章中用了 Display Performance 来描述我们常说的流畅度,为了显得有文化,本文主要用"显示性能"一词来代指"流畅度"(虽然两者在概念上有细微差别). 从 Android 诞生的那一刻起,流畅度就为众人所关注.一时之间,似乎所有人都在讨论 Android 和 iOS 谁的流畅度更好.但是,毫不夸张的说,流畅度绝对是 Android 众多性能维度中最为奇葩的一个.因为,为了刻画这一性能维度,业界设计了各式各样的指标来对其进行衡量
  • 霍金鼓励人类掉进黑洞不要怕 或穿越平行宇宙 霍金鼓励人类掉进黑洞不要怕 或穿越平行宇宙 霍金鼓励人类掉进黑洞不要怕,或穿越平行宇宙.黑洞的恐怖之处在于,任何接近它的物体都会被无情吞噬,即使是光也无法逃脱,那么如果人类掉进黑洞会怎样?日前,宇宙物理学家霍金表示,掉进黑洞其实并不可怕,黑洞并未是死胡同,其另一端很有可能连接着平行宇宙. 霍金认为,黑洞并不像人们此前认为的那样,是不可逃脱的"永恒监狱".当信息被吸入黑洞之后,并非被存储在黑洞内部,而可能位于黑洞边缘,甚至黑洞视界(黑洞最外层的边界)附近.一些信息会以黑洞辐射的形式逃逸出来,另一些仍然会停留在黑洞当中.因此,黑洞中
  • 三星Note4侧键面板怎么开启 三星Note4侧键面板怎么开启 若需开启侧键面板功能,请按以下步骤操作(以Galaxy Note4为例): 第一步 在待机页面下,点击[应用程序]. 第二步 点击[设定]. 第三步 向上滑动屏幕,点击[显示和墙纸]. 第四步 点击[单手操作]. 第五步 点击[侧键面板]. 第六步 点击[侧键面板]右侧滑块. 第七步 阅读"侧键面板"使用说明后,点击[确定]即可.
  • 男人约会时都在想什么 男人约会时都在想什么 男女有别,这句话通俗得连小学生都知道,但运用于实际,可得好好琢磨.同一个问题,男人和女人关注不同的方面,可能得出截然相反的结论.在约会过程中,男人和女人的心理体验不同,从开始约会.到逐渐确定关系的过程中,表现出的行为也大相径庭.你知道男人们在约会时脑子里在嘀咕些什么吗? 本站阅读配图 一见钟情爱上你 科技发展了,我们理应有更多时间谈恋爱,可事实是,都市的男男女女们不仅需要工作更长时间,住地与工作地点之间的距离也越来越远.有调查甚至认为,每天供他们随心所欲.任意行事的时间不过22.3分钟.其中女人
  • 穿墙信号真的更强?360随身WIFI3代评测 穿墙信号真的更强?360随身WIFI3代评测 1.360随身WIFI 3代 PK 2代,信号真的增强了? 2015年1月23日,奇虎360公司最成功的硬件产品360随身WIFI 3代终于发布了,价格依然是19.9元!360随身WIFI 3代的亮点是,定制版300Mbps,同一WIFI下的设备互传数据将更快:双天线设计,据说信号更稳定:指示灯设计,WIFI模式还是无线网卡模式看灯就知道. 相比2代,360随身WIFI 3代堪称硬件上的进化,功能其实没多大变化,就是让人感觉用料更豪华了. 好吧,我们一起来围观下360随身WIFI 3代的官方介绍
  • 通付盾获得欺诈风险管理专利授权,护航互联网金融安全 通付盾获得欺诈风险管理专利授权,护航互联网金融安全 近日,通付盾自主研发的"一种网上交易欺诈风险的自适应可控管理系统"获得国家知识产权局发明专利授权. 基于对网上交易欺诈风险的深入研究和独到分析,通付盾专业安全人员于2012年提出专利申请,明确描述交易欺诈风险管理的技术方案.实现方式以及效果,显示创新的技术前瞻性.该专利描述网上交易中的欺诈风险管理的多项关键单元,包括客户端.支付网关.网上支付平台和风险控制单元,重点解决身份识别.风险数据.信誉管理.规则引擎等技术难题. 在移动互联网时代,支付安全正经受前所未有的考验,而互联网安全投入亟