trie-51nod1526 分配笔名
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 分配笔名相关推荐
- Trie——51nod1526 分配笔名
https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1526 这题主线思路肯定是Trie对吧 定义笔名和真名之间的相关度是他们 ...
- 51nod1526 分配笔名 trie+贪心
Description 班里有n个同学.老师为他们选了n个笔名.现在要把这些笔名分配给每一个同学,每一个同学分配到一个笔名,每一个笔名必须分配给某个同学.现在定义笔名和真名之间的相关度是他们之间的最长 ...
- 51nod-1526: 分配笔名
[传送门:51nod-1526] 简要题意: 给出n个真名和笔名,都是字符串 要求n个真名和笔名一一匹配,一个真名和一个笔名所带来的价值是这两个字符串的最长公共前缀 题解: 直接将真名和笔名插进字典树 ...
- 刷题总结——分配笔名(51nod1526 trie树)
题目: 班里有n个同学.老师为他们选了n个笔名.现在要把这些笔名分配给每一个同学,每一个同学分配到一个笔名,每一个笔名必须分配给某个同学.现在定义笔名和真名之间的相关度是他们之间的最长公共前缀.设笔名 ...
- 51nod 1526 分配笔名(字典树)
1526 分配笔名 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 320 难度:7级算法题 收藏 关注 班里有n个同学.老师为他们选了n个笔名.现在 ...
- 51nod 1526 分配笔名
题意 班里有n个同学.老师为他们选了n个笔名.现在要把这些笔名分配给每一个同学,每一个同学分配到一个笔名,每一个笔名必须分配给某个同学.现在定义笔名和真名之间的相关度是他们之间的最长公共前缀.设笔名为 ...
- 51Nod 1526 分配 笔名
1526 分配 笔名 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 320 难度:7级算法题 收藏 关注 班里有n个同学.老师为他们选了n个笔名 ...
- 51nod 1526 分配笔名(Trie树+贪心)
建出Trie树然后求出一个点子树中有多少笔名和真名.然后贪心匹配即可. #include<iostream> #include<cstring> #include<cst ...
- 51NOD P1526 分配笔名
ORZ ZYY 首先建立trie树,是名字打标机+1,是笔名的话打标机-1 然后贪心爆搜,如果当前和儿子标机不同就加上,记得标机要上传 然后最后一组数据特判掉吧 #include<iostrea ...
最新文章
- 工控服务器性能指标,PLC的7大性能指标
- mysql数据对比同步_跨数据库mysql语句同步数据和对比运算
- Java并发编程(一)线程的各种创建方式
- [ios][swift]UIButton
- 八、计数排序及其应用分析
- qt 创建文件_xmake从入门到精通2:创建和编译工程
- 数据可视化js框架 d3.js入门
- Bailian2790 迷宫【DFS】
- qtvs添加qchart_如何使用Qt Designer在窗体中插入QChartView?
- MySQL · Semi-join原理及源码分析
- 【路径规划】基于改进粒子群实现机器人栅格地图路径规划
- 微信小程序展示动态背景图(含三目运算符)
- 计算机专业毕业设计工作日志,计算机科学技术系毕业设计工作日志
- 深度学习常用python库学习笔记
- 小学生3年级100以内加减法
- xshell 免费版
- linux高级格式化磁盘,linux下格式化磁盘及分区
- 从浏览器调用qt开发客户端程序
- StringBuffer类,StringBuffer类和String的区别、String,StringBuffer,StringBuilder之间的区别
- 腾讯汤道生:2020年加大投入产业互联网生态建设