prefix_prefixes - CSDN
精华内容
参与话题
  • configure –prefix 的用法

    万次阅读 2018-06-15 14:59:18
    源码的安装一般由有这三个步骤:配置(configure)、编译(make)、安装(make install)其中–prefix选项就是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib...

    源码的安装一般由有这三个步骤:配置(configure)、编译(make)、安装(make install)

    其中–prefix选项就是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较分散。

    为了便于集中管理某个软件的各种文件,可以配置–prefix,如:
    ./configure –prefix=/usr/local
    可以把所有资源文件放在/usr/local的路径中,就不会分散了。


    展开全文
  • prefix

    2019-07-28 23:36:10
    本题是要求你找出一个组内比原字符串权值大的前缀,而一个组内包含了其他字符串的前缀,但可能也适配于这个字符串。所以说要记录这些前缀的个数才能解出这个问题。 一个方法是用std::map这样的一个红黑树字典,可以...

    本题是要求你找出一个组内比原字符串权值大的前缀,而一个组内包含了其他字符串的前缀,但可能也适配于这个字符串。所以说要记录这些前缀的个数才能解出这个问题。

    一个方法是用std::map这样的一个红黑树字典,可以直接把string类型的前缀出现次数用int/ll类型的数字统计下来。然后再计算各前缀的权值与个数之积,逐一与原字符串权值进行比对,即可得到答案。

    #include <iostream>
    #include <cstdio>
    #include <bits/stdc++.h>
    #include <map>
    #include <algorithm>
    #include <stack>
    #include <iomanip>
    #include <cstring>
    #include <cmath>
    #define DETERMINATION main
    #define lldin(a) scanf_s("%lld", &a)
    #define println(a) printf("%lld\n", a)
    #define reset(a, b) memset(a, b, sizeof(a))
    const int INF = 0x3f3f3f3f;
    using namespace std;
    const double PI = acos(-1);
    typedef long long ll;
    typedef unsigned long long ull;
    typedef long double ld;
    const int mod = 1000000007;
    const int tool_const = 19991126;
    const int tool_const2 = 33;
    inline ll lldcin()
    {
        ll tmp = 0, si = 1;
        char c;
        c = getchar();
        while (c > '9' || c < '0')
        {
            if (c == '-')
                si = -1;
            c = getchar();
        }
        while (c >= '0' && c <= '9')
        {
            tmp = tmp * 10 + c - '0';
            c = getchar();
        }
        return si * tmp;
    }
    ///Untersee Boot IXD2(1942)
    /**Although there will be many obstructs ahead,
    the desire for victory still fills you with determination..**/
    /**Last Remote**/
    string strs[500000];
    ll identify[40],ans[500000];
    ll cost[500000];
    map<string,ll>prefix;//记录前缀出现次数
    int DETERMINATION()
    {
        ios::sync_with_stdio(false);
        cin.tie(0),cout.tie(0);
        ll n,m;
        cin>>n>>m;
        for(int i=1;i<=26;i++)
            cin>>identify[i];
        for(int i=1;i<=n;i++)
            cin>>strs[i];
        for(int i=1; i<=n; i++)
        {
            string tmp="";
            ll tmpr=1;
            for(int j=0; j<strs[i].size(); j++)
            {
                tmp+=strs[i][j];
                prefix[tmp]++;//录入前缀
                tmpr=(tmpr*identify[strs[i][j]-'a'+1])%m;
            }
            cost[i]=tmpr;
        }
        for(int i=1;i<=n;i++)
        {
          string tmp="";
          ll tmpcost=1;
          for(int j=0;j<strs[i].size();j++)
          {
             tmp+=strs[i][j];
             tmpcost=(tmpcost*identify[strs[i][j]-'a'+1])%m;
             if(tmpcost>cost[i])
                ans[i]+=prefix[tmp];
          }
        }
        for(int i=1;i<=n;i++)
            cout<<ans[i]<<" ";
        cout<<endl;
        return 0;
    }
    

    不过既然涉及到前缀,还有一个数据结构可满足需求,即字典树。

    先来简明介绍一下字典树:字典树是一个26叉树,每一个节点对应26个子结点,也就是不同的英文字母。root,根节点不存储任何信息,它的子结点才存储信息,通过从根节点到最底下的子结点的遍历,就可以近似于遍历了一个英文单词或一个前缀。这需要一个二维数组或者一个结构体数组实现。(模板题HDU1251)

    //#include<pch.h>
    #include <iostream>
    #include <cstdio>
    #include <bits/stdc++.h>
    #include <map>
    #include <algorithm>
    #include <stack>
    #include <iomanip>
    #include <cstring>
    #include <cmath>
    #define DETERMINATION main
    #define lldin(a) scanf_s("%lld", &a)
    #define println(a) printf("%lld\n", a)
    #define reset(a, b) memset(a, b, sizeof(a))
    const int INF = 0x3f3f3f3f;
    using namespace std;
    const double PI = acos(-1);
    typedef long long ll;
    typedef unsigned long long ull;
    typedef long double ld;
    const int mod = 1000000007;
    const int tool_const = 19991126;
    const int tool_const2 = 33;
    inline ll lldcin()
    {
        ll tmp = 0, si = 1;
        char c;
        c = getchar();
        while (c > '9' || c < '0')
        {
            if (c == '-')
                si = -1;
            c = getchar();
        }
        while (c >= '0' && c <= '9')
        {
            tmp = tmp * 10 + c - '0';
            c = getchar();
        }
        return si * tmp;
    }
    ///Untersee Boot IXD2(1942)
    /**Although there will be many obstructs ahead,
    the desire for victory still fills you with determination..**/
    /**Last Remote**/
    int trie[1000030][30], sum[1000030];
    ll cnt = 1;
    void ins(char text[])//插入一个单词
    {
        ll root = 1;
        ll lim = strlen(text);
        for (int i = 0; i < lim; i++)
        {
            ll tmp = (text[i] - 'a'+1);
            if (trie[root][tmp] == 0)//如果当前节点没有这个字母对应的子结点,那么创建
                trie[root][tmp] =++cnt;
            sum[trie[root][tmp]]++;//记录从第一个节点到现在的前缀或是单词出现的次数
            root = trie[root][tmp];//迭代搜索
        }
        return;
    }
    ll query(char text[])
    {
        ll root = 1;
        ll lim = strlen(text);
        for (int i = 0; i < lim; i++)
        {
            ll tmp = (text[i] - 'a'+1);
            if (trie[root][tmp] == 0)//没有这样的子结点
                return 0;
            root = trie[root][tmp];
        }
        return sum[root];
    }
    char input[55555];
    int DETERMINATION()
    {
        ios::sync_with_stdio(false);
        cin.tie(0), cout.tie(0);
        while (cin.getline(input,11))//未知数量但已知长度的C++式输入,C可用GETS
        {
            if (input[0] == NULL||strlen(input)==0)
                break;
            else
                ins(input);
        }
        while (cin >> input)
            cout << query(input) << endl;
        return 0;
    }

    而我们恰好可以使用字典树的记录前缀数量的功能来解决这个问题,那么它的查询也就对应着前缀出现的个数。仍然是一番计算就可以解决问题。

    #include<pch.h>
    #include <iostream>
    #include <cstdio>
    #include <bits/stdc++.h>
    #include <map>
    #include <algorithm>
    #include <stack>
    #include <iomanip>
    #include <cstring>
    #include <cmath>
    #define DETERMINATION main
    #define lldin(a) scanf_s("%lld", &a)
    #define println(a) printf("%lld\n", a)
    #define reset(a, b) memset(a, b, sizeof(a))
    const int INF = 0x3f3f3f3f;
    using namespace std;
    const double PI = acos(-1);
    typedef long long ll;
    typedef unsigned long long ull;
    typedef long double ld;
    const int mod = 1000000007;
    const int tool_const = 19991126;
    const int tool_const2 = 33;
    inline ll lldcin()
    {
    	ll tmp = 0, si = 1;
    	char c;
    	c = getchar();
    	while (c > '9' || c < '0')
    	{
    		if (c == '-')
    			si = -1;
    		c = getchar();
    	}
    	while (c >= '0' && c <= '9')
    	{
    		tmp = tmp * 10 + c - '0';
    		c = getchar();
    	}
    	return si * tmp;
    }
    ///Untersee Boot IXD2(1942)
    /**Although there will be many obstructs ahead,
    the desire for victory still fills you with determination..**/
    /**Last Remote**/
    int trie[125000][30], ans[125000],cost[925000],sum[125000],totalcost[125000];
    int identify[30];
    string strs[125000];
    ll cnt = 2;
    void ins(string info,int mod)
    {
    	ll root = 1;
    	for (int i = 0; info[i]; i++)
    	{
    		ll next = (info[i] - 'a' + 1);
    		if (trie[root][next] == 0)
    			trie[root][next] = cnt++;
    		sum[trie[root][next]]++;
    		//ll current = cnt - 1;
    		//if (cnt == 2)
    		//	cost[trie[root][next]] = identify[next] % mod;
    		//else
    		//	cost[trie[root][next]] = (cost[trie[current][next]] * identify[next]) % mod;
    		root = trie[root][next];
    	}
    	return;
    }
    int query(string info,int mod,int index)//查询前缀出现次数
    {
    	ll root = 1;
    	for (int i = 0; info[i]; i++)
    	{
    		ll next = (info[i] - 'a' + 1);
    		if (trie[root][next] == 0)
    			return 0;
    		root = trie[root][next];
    	}
    	//if(info.size()==strs[index].size())
    	//	cout << cost [root]<< endl;
    	//if (cost[root]> totalcost[index])
    		return sum[root];
    	//else
    	//	return 0;
    }
    int DETERMINATION()
    {
    	ios::sync_with_stdio(false);
    	cin.tie(0), cout.tie(0);
    	int n, m;
    	cin >> n >> m;
    	for (int i = 1; i <= 924009; i++)
    		cost[i] = 1;
    	for (int i = 1; i <= 26; i++)
    		cin >> identify[i];
    	for (int i = 1; i <= n; i++)
    	{
    		cin >> strs[i];
    		ins(strs[i],m);
    		ll tmp = 1;
    		for (int j = 0;strs[i][j]; j++)
    		{
    			tmp = (tmp*identify[strs[i][j] - 'a' + 1]) % m;
    		}
    		totalcost[i] = tmp;//计算原字符串权值
    	}
    	//for (int i = 1; i <= n; i++)
    	//	cout << "Total:" << totalcost[i] << endl;
    	for (int i = 1; i <= n; i++)
    	{
    		string tmp = "";
    		ll tmpvalue = 1;
    		for (int j = 0;j<strs[i].size()-1; j++)
    		{
    			tmp += strs[i][j];
    			tmpvalue = (tmpvalue*identify[strs[i][j] - 'a' + 1]) % m;
    			if(tmpvalue>totalcost[i])
    				ans[i] += query(tmp, m, i);//计算
    		}
    	}
    	for (int i = 1; i <= n; i++)
    		cout << ans[i] <<" ";
    	return 0;
    }

     

    展开全文
  • Linux之 prefix 命令

    千次阅读 2018-10-09 14:31:45
      linux安装软件采用源码安装灵活自由,适用于不同的平台,维护也十分方便。 源码的安装一般由3个步骤组成: 配置(configure) ...具体的安装方法一般作者都会给出文档,这里说明配置(configure...

    摘自 :http://baike.haosou.com/doc/3909580-4103422.html

     

    linux安装软件采用源码安装灵活自由,适用于不同的平台,维护也十分方便。

    源码的安装一般由3个步骤组成:

    配置(configure)

    编译(make)

    安装(make install)

    安装方法:

     

    具体的安装方法一般作者都会给出文档,这里说明配置(configure)的prefix选项

    以安装postgresql-10.0为例,我们打算把他安装到目录 /opt/postgres/db/pgsql, 

    ./configure –prefix=/opt/postgres/db/pgsql

    执行成功后再编译、安装(make,make install);安装完成将自动生成目录/opt/postgres/db/pgsql,而且该软件任何的文档都被复制到这个目录。为什么要指定这个安装目录?是为了以后的维护方便,假如没有用这个选项,安装过程结束后,该软件所需的软件被复制到不同的系统目录下,很难弄清楚到底复制了那些文档、都复制到哪里去了-基本上是一塌糊涂

    用了-prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就能够把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。

    一个小选项有这么方便的作用,建议在实际工作中多多使用。

     

    展开全文
  • Linux软件安装时--prefix选项的作用

    千次阅读 2018-08-16 17:14:53
    prefix linux下源码安装软件的一个选项 linux安装软件采用源码安装灵活自由,适用于不同的平台,维护也十分方便。  源码的安装一般由3个步骤组成: 配置(configure) 编译(make) 安装(make install)  ...

    prefix

    linux下源码安装软件的一个选项

    linux安装软件采用源码安装灵活自由,适用于不同的平台,维护也十分方便。  

    源码的安装一般由3个步骤组成:  配置(configure)  编译(make)  安装(make install) 

    具体的安装方法一般作者都会给出文档,这里说明配置(configure)的prefix选项  

    以安装supersparrow-0.0.0为例,我们打算把他安装到目录 /usr/local/supersparrow,于是在supersparrow-0.0.0目录执行带选项的脚本  ./configure –prefix=/usr/local/supersparrow  

    执行成功后再编译、安装(make,make install);

    安装完成将自动生成目录supersparrow,而且该软件任何的文档都被复制到这个目录。

    为什么要指定这个安装目录?是为了以后的维护方便,假如没有用这个选项,安装过程结束后,该软件所需的软件被复制到不同的系统目录下,很难弄清楚到底复制了那些文档、都复制到哪里去了—基本上是一塌糊涂。  

    用了—prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就能够把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。  一个小选项有这么方便的作用,建议在实际工作中多多使用。

    展开全文
  • linux, configure --prefix=/有什么用

    千次阅读 2018-04-04 09:13:48
    作用就是指定安装路径不指定prefix,则可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc。其它的资源文件放在/usr /local/share。你要卸载这个程序,要么在原来的...
  • 它的作用是移除所有指定在 prefixOverrides 属性中的内容,并且插入 prefix 属性中指定的内容。(注意 prefixOverrides 单词不能写错,包括大小写,否则会报错)。 prefix Overrides——&gt;前缀 覆盖 &...
  • prefixspan算法

    千次阅读 2016-03-15 11:22:22
       prefixspan算法韩家炜老师在2004年提出的序列模式算法,该算法和他在2000提出的FP_growth算法有很大的相似之处,都避免产生候选序列。奇怪的是为什么第二个算法要4年后才提出。  prefixspan算法的核心是...
  • PrefixSpan算法详解

    千次阅读 2016-12-16 22:09:16
    序列模式的概念最早是由Agrawal和Srikant 提出的。 动机:大型连锁超市的交易数据有一系列的用户事务数据库,每一条记录包括用户的ID,事务发生的时间和事务涉及的项目。如果能在其中挖掘涉及事务间关联关系的模式...
  • innodb_large_prefix设置步骤

    万次阅读 2019-08-05 14:50:28
    mysql> set global innodb_file_format = BARRACUDA; Query OK, 0 rows affected (0.00 sec) mysql> set global innodb_large_prefix = ON; Query OK, 0 rows affected (0.00 sec)
  • Premature EOF: no length prefix available

    万次阅读 2014-03-14 16:26:45
    2013-05-02 14:02:41,063 INFO org.apache.hadoop.hdfs.DFSClient: Exception in createBlockOutputStream java.io.EOFException: Premature EOF: no length prefix available Solution: 由于DataNode终止了blo
  • @ConfigurationProperties 加在类上或方法上,可以和@PropertySource组合使用 加在方法上: @Bean("primaryDataSource") @Primary @ConfigurationProperties("primary.datasource"...
  • Spring MVC prefix 配置问题

    万次阅读 2016-07-01 09:59:34
    一开始在配置prefix的时候在WEB-INF前面少加了个/然后就出现了如下的错误<property name="prefix" value="WEB-INF/pages/">在Controller中通过注解控制请求URL@RequestMapping("person/listAll.action")然后在访问的...
  • cmake 怎么设定 prefix

    千次阅读 2014-09-08 14:48:01
    cmake -D CMAKE_INSTALL_PREFIX=/usr .
  • 如果发现引用的@ConfigurationProperties(prefix = “xxx”)的属性值取出为空 那么原因很有可能是下面这个原因: 尽管我们定义某些变量时候习惯用xx_xx来命名, 但是在定义这个yml配置文件时, 千万要注意,...
  • 本人最开始将前缀部分配置成空,结果不是报404,就是...总体来说个人认为将prefix配置成空是不对的方式 1.prefix配置成空的时候: class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  • 子网掩码和prefixlength

    千次阅读 2016-09-08 15:35:27
    Prefix Length:前缀长度,mask长度,即子网掩码为1的位数。 有一些情况下会返回前缀长度,但是需要的是子网掩码,需要代码进行转换。 代码如下String[] parts = addr.split("/"); String ip = parts[0]; int ...
  • nginx: [emerg] invalid URL prefix in /usr/local/nginx/conf/nginx.conf
  • 在configure 时出现 expected an absolute directory name for --prefix=./dir 错误担示,将./dir改成绝对路径即可 --prefix=--prefix=/Users/xxxxx/Downloads/testproj/
  • 路由控制配置ip ip-prefix命令解析

    万次阅读 2018-12-18 22:21:24
    ip ip-prefix命令 1.命令功能 ip ip- prefix命令用来创建IPv4地址前缀列表或增加其中一个表项。 undo ip ip-prefⅸ命令用来删除指定的IPV4地址前缀列表或其中一个表项。 缺省情况下,系统中无IPV4地址前缀列表。 2....
  • 源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。...其中--prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/l
1 2 3 4 5 ... 20
收藏数 670,517
精华内容 268,206
关键字:

prefix