COGS 788. 昵称
788. 昵称
★☆ 输入文件:nickname.in 输出文件:nickname.out 简单对比
时间限制:1 s 内存限制:128 MB
【问题描述】
ZSUQ送信者与腾讯QQ相似。每个用户需要为自己起一个昵称。不同的用户有不同的昵称。一些普通的名字像“Tom”、“Marry”和“Kate”会经常被用到。最近的一次调查中,ZSUQ公司发现有超过5000个独特的昵称正在被使用。
作为一个ZSUQ公司的成员,你需要写一个报告,每一个昵称有多少个用户。你用于一个所有用户昵称的完整清单。注意昵称是不分大小写的。
【输入格式】
文件第一行包括所有整形数据表示测试数据的个数。
在每组测试数据中,第一行有一个整数N(0<n≤100000),下面n行描述n个用户的昵称。每个昵称不超过100个字符。两个测试数据之间有空行。< p="">
【输出格式】
对于每组测试数据,给出一个独特昵称的清单。每一行,后面有一个空格,数字表示有这个昵称的用户个数。名称按字母序,每一行的开头或结尾没有空格。昵称都是小写字母,每两组数据间有空行。
【输入样例】
输入文件名: nickname.in
1
4
carp
inkfish
peipei
carp
输出文件名: nickname.out
carp 2
inkfish 1
peipei 1
trie树模版
#include <algorithm>
#include <cstring>
#include <cstdio>
using namespace std;
struct node
{
int pos;
node * next[];
}*root;
struct nicheng
{
char nc[];
int num;
bool operator<(nicheng a)const
{
int l=;while(nc[l]==a.nc[l]) l++;
return nc[l]<a.nc[l];
}
}yh[];
node *create()
{
node *rt=new node;
rt->pos=;
memset(rt->next,,sizeof(rt->next));
return rt;
}
int T;
void ins(int po,char *a)
{
char *q=a;
node *p=root;
while(*q)
{
int id=*q-'a'+;
if(p->next[id]==NULL) p->next[id]=create();
p=p->next[id];
q++;
}
p->pos=po;
}
int search(char *a)
{
char *q=a;
node * p=root;
while(*q)
{
int id=*q-'a'+;
if(p->next[id]==NULL) return ;
p=p->next[id];
q++;
}
return p->pos;
}
int main()
{
freopen("nickname.in","r",stdin);
freopen("nickname.out","w",stdout);
scanf("%d",&T);
for(int n;T--;)
{
scanf("%d",&n);
int tot=;root=create();memset(yh,,sizeof(yh));
for(int i=;i<=n;i++)
{
scanf("%s",yh[++tot].nc);
for(int i=;i<strlen(yh[tot].nc);i++) if('A'<=yh[tot].nc[i]&&yh[tot].nc[i]<='Z') yh[tot].nc[i]+=;
int pos=search(yh[tot].nc);
if(!pos)
{
ins(tot,yh[tot].nc);
yh[tot].num=;
}
else yh[pos].num++,--tot;
}
sort(yh+,yh++tot);
for(int i=;i<=tot;i++)
printf("%s %d\n",yh[i].nc,yh[i].num);
}
return ;
}
COGS 788. 昵称的更多相关文章
- (转)iOS开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证
之前看到觉得不错 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ...
- 【COGS 254】【POI 2001】交通网络图
http://www.cogs.top/cogs/problem/problem.php?pid=254 dist[i]表示能最早到达i点的时间.这样就可以用最短路模型来转移了. #include&l ...
- 【COGS】894. 追查坏牛奶
http://cojs.tk/cogs/problem/problem.php?pid=894 题意:n个点m条边的加权网络,求最少边数的按编号字典序最小的最小割.(n<=32, m<=1 ...
- 【COGS】147. [USACO Jan08] 架设电话线(二分+spfa)
http://cojs.tk/cogs/problem/problem.php?pid=147 学到新姿势了orz 这题求的是一条1-n的路径的最大路径最小. 当然是在k以外的. 我们可以转换一下. ...
- 【COGS & USACO Training】710. 命名那个数字(hash+水题+dfs)
http://cojs.tk/cogs/problem/problem.php?pid=710 近日开始刷水... 此题我为了练一下hash...但是hash跑得比暴力还慢.. 不言而喻... #in ...
- 【COGS & USACO】896. 圈奶牛(凸包)
http://cojs.tk/cogs/problem/problem.php?pid=896 我的计算几何入门题... 看了看白书的计算几何部分,,恩好嘛.. 乃们都用向量!!!! 干嘛非要将2个点 ...
- 【COGS】714. USACO 1.3.2混合牛奶(贪心+水题)
http://cojs.tk/cogs/problem/problem.php?pid=714 在hzwer的刷题记录上,默默地先跳过2题T_T...求凸包和期望的..T_T那是个啥..得好好学习 看 ...
- C# 玩家昵称屏蔽敏感字眼
功能:使用正则 对玩家昵称处理,如果含有 屏蔽字库里的敏感字眼进行屏蔽.已封装成dll 1.屏蔽字库处理成所需要的正则格式:(所需正则表达式格式:".*((XX)|(XX)|(XX)|.. ...
- php 解决微信昵称emoji表情插入MySQL报错
在PHP接受到微信用户昵称入库的时候报错 原因:utf-8 最大3个字节,而emoji占4个字节 解决办法: 1.修改mysql 数据库的字符集,改为utf8mb4,但是前提是MySQL的版本需要5. ...
随机推荐
- sass编译命令
sass编译一个文件的方式 sass xx.scss:xx.css 这种方式只能编译一次,要是想一直监控编译,只要有保存更改就会立即编译,那么就需要下面这条命令了 sass --watch xx.sc ...
- 单例模式-Lazy initialization holder class模式
这个模式综合使用了Java的类级内部类和多线程缺省同步锁的知识,很巧妙地同时实现了延迟加载和线程安全. 1.相应的基础知识 什么是类级内部类? 简单点说,类级内部类指的是,有static修饰的成员式内 ...
- java集合框架之几种set(HashSet LinkedHashSet TreeSet )
参考http://how2j.cn/k/collection/collection-sets/691.html#nowhere HashSet LinkedHashSet TreeSet HashSe ...
- Flutter实战视频-移动电商-09.首页_项目结构建立和获取数据
09.首页_项目结构建立和获取数据 在config下创建service_url.dart 用来配置我们后端接口的配置文件 一个变量存 接口地址,一个接口方法地址 所有后天请求数据的方法都放在这个文件夹 ...
- tomcat的bin文件夹下的.bat和.sh文件
tomcat的bin文件夹中存在一份.bat文件和相对应的.sh文件,一个是为了在window系统上执行的文件,另一个是linux下的批处理文件.例如:startup.bat和startup.sh. ...
- UVa 11520 Fill the Square (水题,暴力)
题意:给n*n的格子里填上A-Z的字符,保证相邻字符不同,并且字典序最小. 析:直接从第一个格子开始暴力即可,每次判断上下左是不是相同即可. 代码如下: #pragma comment(linker, ...
- 无法打开编译器生成的文件:“../../build/vs71/release/v100/MD_MBCS\json_value.
1>正在生成代码 1>e:\Source\VC\?\json\jsoncpp-src-0.6.0-rc2\src\lib_json\json_value.cpp : fatal error ...
- 正向渲染路径细节 Forward Rendering Path Details
http://www.ceeger.com/Components/RenderTech-ForwardRendering.html This page describes details of For ...
- 基础篇-psql帮助命令
\? psql命令帮助 \h sql语句帮助 \?常用命令 1.默认 \d 后面不跟参数,则显示当前数据库所有的表 2. \d 表名 ,则显示这个表的定义 3.\d 索引名 ,显示索引的信息 ...
- 部署spark 1.3.1 standalong模式
之前已经写过很多次部署spark 的博客,但是之前部署都是照瓢画葫芦,不得其中的细节,并且以前都是部署spark on yarn 部署环境 scala 2.10.2,jdk 1.6,spark 版本1 ...