hdu2846 Repository

//---------------------------------------------------------------
/*---字典树应用问题。考虑到要查询的次数在10^6,显然直接插入后dfs来查找必然超时间。好在每一个单词长度
---不超过20,这样可以枚举每个单词子串,然后插入即可。例如abc子串为a,b,c,ab,bc,abc。但是要注意的是同一个
---串可能有相同的子串,避免重复插入,可以采用一个节点信息num表示当前插入的是第num个串的子串,可以避免重复插入
*/
#define _CRT_SECURE_NO_DEPRECATE
#include<iostream>
#include<algorithm>
#include<string.h>
typedef long long LL;
using namespace std;
const int maxsize = 26;

struct Trie{
	Trie(){ memset(next, 0, sizeof(next)); v = 0; num = -1; }
	int v;
	int num;  //标记当前插入的是第num个单词的子串
	Trie*next[maxsize];
};

Trie*T;
void insert(int num,char*str){
	Trie*p = T;
	while (*str != ‘\0‘){
		int id = *str++ - ‘a‘;
		if (!p->next[id]) p->next[id] = new Trie;
		p = p->next[id];
	}
	if (num != p->num){
		p->num=num;
		p->v++;
	}
}

int search(char*str){
	Trie*p=T;
	while (*str != ‘\0‘){
		int id = *str++ - ‘a‘;
		if (!p->next[id])return 0;
		p = p->next[id];
	}
	return p->v;
}

char str[maxsize];
char temp[maxsize];

int main(){
	int n, m;
	T = new Trie;
	scanf("%d", &n);
	while (n--){
		scanf("%s", str);
		int len = strlen(str);
		for (int l = 1; l <= len;l++)
		for (int i = 0; i+l<=len;i++){
			memcpy(temp, str+i, l);
			temp[l] = ‘\0‘;
			insert(n, temp);
		}
	}
	scanf("%d", &m);
	while (m--){
		scanf("%s", str);
		printf("%d\n",search(str));
	}
	return 0;
}

  

时间: 2024-10-10 21:00:44

hdu2846 Repository的相关文章

HDU2846 Repository(字典树)

Repository Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 5761    Accepted Submission(s): 1911 Problem Description When you go shopping, you can search in repository for avalible merchandises b

maven依赖本地非repository中的jar包-依赖jar包放在WEB-INF/lib等目录下的情况客户端编译出错的处理

maven依赖本地非repository中的jar包 http://www.cnblogs.com/piaolingxue/archive/2011/10/12/2208871.html 博客分类: MAVEN 今天在使用maven编译打包一个web应用的时候,碰到一个问题: 项目在开发是引入了依赖jar包,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary导入. 在eclipse中开发没有问题,但是使用maven编译插件开始便宜总是报找不到WEB-INF

Maven:mirror和repository 区别

1 Repository(仓库) 1.1 Maven仓库主要有2种: remote repository:相当于公共的仓库,大家都能访问到,一般可以用URL的形式访问 local repository:存放在本地磁盘的一个文件夹,例如,windows上默认是C:\Users\{用户名}\.m2\repository目录 1.2 Remote Repository主要有3种: 中央仓库:http://repo1.maven.org/maven2/ 私服:内网自建的maven repository,

log4j的1.2.15版本,在pom.xml中的顶层project报错错误: Failure to transfer javax.jms:jms:jar:1.1 from https://maven-repository.dev.java.net/nonav/repository......

在动态网站工程中,添加了Pom依赖,当添加log4j的1.2.15版本依赖时,在pom.xml中的顶层project报错错误: Failure to transfer javax.jms:jms:jar:1.1 from https://maven-repository.dev.java.net/nonav/repository......,如下图 这是因为 https://maven-repository.dev.java.net/nonav/repository 这个域名已经无法解析了. 而

svn更新报错:svn unable to connect to a repository at url

出现错误:unable to connect to a repository at url 解决办法1. 右键点击本地副本,TortoiseSVN -> Settings -> Saved Data,2. 点击个个“Clear”按钮,把本地缓存都清除了,点击“确定”:3. 再重新checkout即可!

ios svn repository

xcode默认自带Git和svn,首先讲下xcode4.6.3下配置svn: 1.检测你的mac中是否安装了svn: (1) 打开终端,输入 svn --version 如果出现下图信息,则说明已经安装了svn. (2)那么接下来,打开xcode-->Preferences-->DownLoads--->下载安装"Command Line Tools",如下图: 我这边是安装完成的. 2.在Xcode菜单选项"Windows"-"Orga

Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析

URL:http://www.ulewo.com/user/10001/blog/273 我们在使用spring的时候经常会用到这些注解,那么这些注解到底有什么区别呢.我们先来看代码 同样分三层来看: Action 层: package com.ulewo.ioc; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @Co

springboot 自定义Repository

启用 JpaRepositories package cn.xiaojf; import cn.xiaojf.today.data.rdb.repository.RdbCommonRepositoryImpl; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframewo

Spring中常用的注解(@Entity,@Table,@Column,@Repository,@Service)

当项目变得比较大的时候,如何还使用hbm.xml文件来配置Hibernate实体就会变得比较复杂.这里Hibernate提供了Annotation注解方式,使得Hibernate的映射文件变得很方便管理了. 这里简单介绍Hibernate的Annotation注解 一.声明实体 @Entity 对实体注释.任何Hibernate映射对象都要有这个注释 @Table 声明此对象映射到数据库的数据表,通过它可以为实体指定表(talbe),目录(Catalog)和schema的名字.该注释不是必须的,