首页 技术 正文
技术 2022年11月16日
0 收藏 955 点赞 2,684 浏览 1220 个字

C++之路进阶——bzoj3172(单词)

F.A.Qs Home Discuss ProblemSet Status Ranklist Contest ModifyUser  hyxzc Logout 捐赠本站

Notice:由于本OJ建立在Linux平台下,而许多题的数据在Windows下制作,请注意输入、输出语句及数据类型及范围,避免无谓的RE出现。

3172: [Tjoi2013]单词

Time Limit: 10 Sec  Memory Limit: 512 MB
Submit: 2218  Solved: 1033
[Submit][Status][Discuss]

Description

某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。

Input

第一个一个整数N,表示有多少个单词,接下来N行每行一个单词。每个单词由小写字母组成,N<=200,单词长度不超过10^6

Output

输出N个整数,第i行的数字表示第i个单词在文章中出现了多少次。

Sample Input

3
a
aa
aaa

Sample Output

6
3
1

HINT

 

Source

题解:

只是裸题而已…..

初步使用结构体算法。。。

hzwer伴我成长

代码:

 #include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm> using namespace std; int n,pos[];
struct acm
{
int sz,point[],q[],sum[],a[][];
char ch[];
acm()
{sz=;for (int i=;i<=;i++) a[][i]=;} void insert(int &pos)
{
scanf("%s",ch);
int now=;
for (int i=;i<strlen(ch);i++)
{
int t=ch[i]-'a'+;
if (a[now][t]) now=a[now][t];
else now=a[now][t]=++sz;
sum[now]++;
}
pos=now;
} void acmach()
{
int w=,t=;
point[]=,q[]=;
while (t<w)
{
int now=q[t++];
for (int i=;i<=;i++)
{
if (!a[now][i]) continue;
int k=point[now];
while (!a[k][i])k=point[k];
point[a[now][i]]=a[k][i];
q[w++]=a[now][i];
}
}
for (int i=t-;i>=;i--)
{
sum[point[q[i]]]+=sum[q[i]];
}
} }acm; int main()
{
scanf("%d",&n);
for (int i=;i<=n;i++)
acm.insert(pos[i]);
acm.acmach();
for (int i=;i<=n;i++)
printf("%d\n",acm.sum[pos[i]]);
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,494
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,295