【字母树+贪心】【HDU3460】【Ancient Printer】
题目大意:
一个打印机 只有 打印,删除,a-z。操作
给你一堆队名,如何才能操作次数最少输出全部
(字典树节点数-1)*2 输入,删除操作数
字符串数 printf操作数最长字符串的长度 最后一个不需要删除,所以尽量找最大的
所以
answer=(字典树节点数-1)*2+字符串数-最长字符串的长度
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <ctime>
#include <algorithm>
#include <iostream>
#include <sstream>
#include <string>
#define oo 0x13131313
using namespace std;
const int maxn=600000;
int T[maxn][26];
int A[maxn];
char buffer[55];
int tot=2;
int n;
int ans=0;
int MAX;
int TOT=0;
void CreatTrie(char *s)
{
int root=1;
for(int i=0;s[i];i++)
{
int p=s[i]-'a';
if(T[root][p]==0) T[root][p]=tot++;
root=T[root][p];
}
A[root]++;
}
void init()
{
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
}
void MEMSET()
{
MAX=-1;
tot=2;
ans=0;
TOT=0;
memset(A,0,sizeof(A));
memset(T,0,sizeof(T));
}
int dfs(int u)
{
ans++;
for(int i=0;i<26;i++)
{
if(T[u][i]!=0)
dfs(T[u][i]);
}
return 0;
}
int main()
{
// init();
while(cin>>n)
{
MEMSET();
for(int i=1;i<=n;i++)
{
scanf("%s",buffer);
int len=strlen(buffer);
if(len>MAX) MAX=len;
CreatTrie(buffer);
}
dfs(1);
printf("%d\n",(ans-1)*2+n-MAX);
}
return 0;
}
【字母树+贪心】【HDU3460】【Ancient Printer】的更多相关文章
- Ancient Printer HDU - 3460 贪心+字典树
The contest is beginning! While preparing the contest, iSea wanted to print the teams' names separat ...
- Ancient Printer(tire树)
Ancient Printer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) ...
- Ancient Printer[HDU3460]
Ancient Printer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Tot ...
- hdu 3460 Ancient Printer
Problem Description The contest is beginning! While preparing the contest, iSea wanted to print the ...
- poj3764(dfs+Trie树+贪心)
题目链接:http://poj.org/problem?id=3764 分析:好题!武森09年的论文中有道题CowXor,求的是线性结构上的,连续序列的异或最大值,用的办法是先预处理出前n项的异或值, ...
- BZOJ_1826_[JSOI2010]缓存交换 _线段树+贪心
BZOJ_1826_[JSOI2010]缓存交换 _线段树+贪心 Description 在计算机中,CPU只能和高速缓存Cache直接交换数据.当所需的内存单元不在Cache中时,则需要从主存里把数 ...
- Bzoj5251 线段树+贪心
Bzoj5251 线段树+贪心 记录本蒟蒻省选后的第一篇题解!国际惯例的题面:首先这个东西显然是一棵树.如果我们把数值排序,并建立这棵树的dfs序,显然dfs序上的一个区间对应数值的一个区间,且根为数 ...
- 【NOI2015】荷马史诗[Huffman树+贪心]
#130. [NOI2015]荷马史诗 统计 描述 提交 自定义测试 追逐影子的人,自己就是影子. ——荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读 ...
- 2018.10.20 NOIP模拟 蛋糕(线段树+贪心/lis)
传送门 听说是最长反链衍生出的对偶定理就能秒了. 本蒟蒻直接用线段树模拟维护的. 对于第一维排序. 维护第二维的偏序关系可以借助线段树/树状数组维护逆序对的思想建立权值线段树贪心求解. 代码
随机推荐
- IOS Xmpp的Iq发送和解析之请求讨论组成员
#pragma mark - 获取讨论组成员 - (void)getDiscussionMemberInfoWithSendIq:(discussionModel *)data { NSXMLElem ...
- AliCTF 2016
上上周参加了阿里的CTF,靠着最后绝杀队伍有幸拿到了国内第一名,也顺利进入了XCTF Final.把自己做的几个题简单写了下,发出来也算个总结吧. PWN-FB 经典的null byte overfl ...
- margin四个属性的顺序
margin-top ,margin-right ,margin-bottom ,margin-left .方向为 上右下左,顺时针方向, 值可以是: 百分比(基于父对象总高度或宽度的百分比) 长度值 ...
- UIView的交换实现,子视图交替变换
其中加了一些动画 2016-01-13 其中主要的方法有:Demo下载地址,Demo中有介绍:https://github.com/lizhaojie001/UIview.git
- window.showDialog()兼容性处理
ModalDialog 是什么? showModalDialog 是js window对象的一个方法, 和window.open一样都是打开一个新的页面. 区别是: showModalDialog打开 ...
- hdu3123GCC
Problem Description The GNU Compiler Collection (usually shortened to GCC) is a compiler system prod ...
- Java-----判断是否为基本类型
转载自:http://blog.csdn.net/hekewangzi/article/details/51969774
- <转>java中静态方法和非静态方法的存储
Java中非静态方法是否共用同一块内存? 将某 class 产生出一个 instance 之后,此 class 所有的 instance field 都会新增一份,那么所有的 instance met ...
- Windows下Vundle安装
鼠标手老是发作,没办法.想学习vim尽量减少编码时使用鼠标的频率.安装好gVim开始安装Vundle插件,总结下安装过程和各种遇到的坑: github上VundleVim倒是有说明 Windows S ...
- UVA 11214 Guarding the Chessboard
题意: 皇后防御的范围是他所在横.竖.对角线,地图上的#为可以放旗子的地方.问最少放几个皇后能防守所有#. 分析: vis数组开4维,对应行.列.主对角线.副对角线 代码: #include < ...