http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1526
狗题;
卡我内存6mb;
所以我只有95分;
好像用指针,用结构体,内存会大;
唉~
这道题目,我们先用真名去建树;
对于每一个名字,我们从root更新下去;
走到一个点,这个点的v就++;
然后对于笔名,我们在这个树上查询;
查询直到查完或者查不到;
每查询到一个点;
这个值如果>0就对答案有贡献;
就v–;
v=0就不管了;
为什么这样是对的;
这个显然啊;
我恐怕说不清;
自己体会体会把;

#include<iostream>
#include<cstdio>
#include<cstring>
#define Ll long long
#define ui unsigned int
using namespace std;
struct trie{int nxt[26];int v;trie(){memset(nxt,0,sizeof nxt);v=0;}
}T[800005];
int n,m,ans,ll;
string c;
void init(){int o=0;for(int i=0;i<m;i++){int x=c[i]-'a';if(!T[o].nxt[x])T[o].nxt[x]=++ll;o=T[o].nxt[x];T[o].v++;}
}
void cfb(){int o=0;for(int i=0;i<m;i++){int x=c[i]-'a';if(!T[o].nxt[x])return;o=T[o].nxt[x];if(T[o].v)ans++,T[o].v--;}
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){cin>>c;m=c.length();init();}for(int i=1;i<=n;i++){cin>>c;m=c.length();cfb();}printf("%d",ans);
}

指针在64位系统里,占8个字节;

trie-51nod1526 分配笔名相关推荐

  1. Trie——51nod1526 分配笔名

    https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1526 这题主线思路肯定是Trie对吧 定义笔名和真名之间的相关度是他们 ...

  2. 51nod1526 分配笔名 trie+贪心

    Description 班里有n个同学.老师为他们选了n个笔名.现在要把这些笔名分配给每一个同学,每一个同学分配到一个笔名,每一个笔名必须分配给某个同学.现在定义笔名和真名之间的相关度是他们之间的最长 ...

  3. 51nod-1526: 分配笔名

    [传送门:51nod-1526] 简要题意: 给出n个真名和笔名,都是字符串 要求n个真名和笔名一一匹配,一个真名和一个笔名所带来的价值是这两个字符串的最长公共前缀 题解: 直接将真名和笔名插进字典树 ...

  4. 刷题总结——分配笔名(51nod1526 trie树)

    题目: 班里有n个同学.老师为他们选了n个笔名.现在要把这些笔名分配给每一个同学,每一个同学分配到一个笔名,每一个笔名必须分配给某个同学.现在定义笔名和真名之间的相关度是他们之间的最长公共前缀.设笔名 ...

  5. 51nod 1526 分配笔名(字典树)

    1526 分配笔名 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 320 难度:7级算法题  收藏  关注 班里有n个同学.老师为他们选了n个笔名.现在 ...

  6. 51nod 1526 分配笔名

    题意 班里有n个同学.老师为他们选了n个笔名.现在要把这些笔名分配给每一个同学,每一个同学分配到一个笔名,每一个笔名必须分配给某个同学.现在定义笔名和真名之间的相关度是他们之间的最长公共前缀.设笔名为 ...

  7. 51Nod 1526 分配 笔名

    1526 分配 笔名 题目来源:  CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 320  难度:7级算法题  收藏  关注 班里有n个同学.老师为他们选了n个笔名 ...

  8. 51nod 1526 分配笔名(Trie树+贪心)

    建出Trie树然后求出一个点子树中有多少笔名和真名.然后贪心匹配即可. #include<iostream> #include<cstring> #include<cst ...

  9. 51NOD P1526 分配笔名

    ORZ ZYY 首先建立trie树,是名字打标机+1,是笔名的话打标机-1 然后贪心爆搜,如果当前和儿子标机不同就加上,记得标机要上传 然后最后一组数据特判掉吧 #include<iostrea ...

最新文章

  1. 如何从Subversion存储库中git-svn克隆最后n个修订版?
  2. 赠书|大厂面试喜欢考算法,该怎么破?
  3. 7系统启动到一半停止_太突然!国际饮料巨头计划狂砍一半品牌,这些饮料就快喝不到了…...
  4. 广州培训:成功部署报表必做的四件事
  5. 【转】POJ分类很好很有层次感
  6. C++中引用变量的探究
  7. 检测点是否在两条平行线段之间_两点距离、点到直线距离、两条直线平行与垂直的判定...
  8. excel制作跨职能流程图_一款在线版流程图工具亿图图示
  9. 关于md导入时本地图片外链失败的解决方法
  10. 网站首页的轮播新闻flash效果实现
  11. 【技术思路】极客时间-左耳听风-开篇词1
  12. solr教程,值得刚接触搜索开发人员一看(转载:http://blog.csdn.net/awj3584/article/details/16963525)
  13. CSS的两种盒子模型
  14. 渗透thinksns官网
  15. 指令系统 - CISC 和 RISC
  16. win7系统提示计算机内存不足,Win7系统下提示内存不足的原因及解决方法
  17. Adb 查询手机信息
  18. Houdini HDK 读取shapefile矢量数据 02
  19. 决策树算法-理清每个细节-附R+Python代码
  20. Unity - DOTween库的使用问题

热门文章

  1. CXF中 wsdl2java工具的使用方法
  2. 一年卖3亿元 看看这家潮流B2C如何做到的?
  3. 介绍uni-app框架,以及运行原理
  4. 索尼a5100_约2430万自拍相机 索尼A5100微单评测首发
  5. php正则字符串,php正则匹配字符串
  6. 介绍 SURF(Speeded-Up Robust Features)
  7. 淘宝APP产品升级:首页聚焦转化和运营效率「买家秀」社区升级为 「逛逛」
  8. 集合转数组 数组转集合
  9. mac电脑安装vuedevtools的步骤
  10. java虚拟机-java内存模型与线程