当前位置: 首页 > news >正文

[luoguP1666] 前缀单词(DP)

传送门

 

先把所有字符串按照字典序排序一下

会发现有字符串x和y(x再y前面,即字典序小),如果x不是y的前缀,那么在x前面不是x前缀的字符串也不是y的前缀

这样就可以DP了

f[i][j]表示前i个字符串中选j个,且第j个必须选字符串i。有多少种集合,

 

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define N 101
#define LL long long

using namespace std;

int n;
string s[N];
bool b[N][N];
LL ans, f[N][N];
//f[i][j]表示1~i号里取j个,i号必须取的方案数 

inline bool check(int x, int y)
{
	int i;
	for(i = 0; i < s[x].length(); i++)
		if(s[x][i] != s[y][i])
			return 0;
	return 1;
}

int main()
{
	int i, j, k;
	scanf("%d", &n);
	for(i = 1; i <= n; i++) cin >> s[i]; 
	sort(s + 1, s + n + 1);
	for(i = 1; i <= n; i++)
		for(j = 1; j < i; j++)
			b[j][i] = check(j, i);
	f[0][0] = 1;
	for(i = 1; i <= n; i++)
		for(j = 1; j <= i; j++)
		{
			for(k = 0; k < i; k++)
				if(!b[k][i])
					f[i][j] += f[k][j - 1];
			ans += f[i][j];
		}
	printf("%lld\n", ans + 1);
	return 0;
}

  

转载于:https://www.cnblogs.com/zhenghaotian/p/7340835.html

相关文章:

  • JZOJ 8.10 B组总结
  • android oboe 混音_Android之AppBarLayout实现悬停吸附伸缩效果
  • 第三百四十六节,Python分布式爬虫打造搜索引擎Scrapy精讲—Requests请求和Response响应介绍...
  • 中台架构与实现:基于ddd和微服务 下载_提升建设效能 普元信息推出金融科技业务赋能中台软件...
  • 正则表达式和JavaScript中的RegExp对象
  • uka profinet gsd文件_西门子PLC和发那科机器人进行PROFINET通信
  • unsharp mark 算法_Google SEO-BERT算法更新
  • 记录一次https证书申请失败的案例
  • java代码_听说你还不知道Java代码是怎么运行的?
  • 记一次%转义引发的血案
  • 最好用的电脑软件商店_史上最实用电脑软件推荐,5款个个是良心,顶级黑科技...
  • mkdir 的详细使用说明
  • eclipse复制代码连接数据库404_(最新)Windows 系统 eclipse的下载和jre的安装。(2019.05.02)...
  • 无法定位软件包 docker-ce_秀刻短视频定位价值社交,从新出发
  • 【剑指Offer学习】【面试题21:包括min 函数的栈】
  • 10个确保微服务与容器安全的最佳实践
  • Android优雅地处理按钮重复点击
  • ESLint简单操作
  • express如何解决request entity too large问题
  • JAVA之继承和多态
  • Koa2 之文件上传下载
  • LeetCode18.四数之和 JavaScript
  • Linux Process Manage
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • maven工程打包jar以及java jar命令的classpath使用
  • Nodejs和JavaWeb协助开发
  • QQ浏览器x5内核的兼容性问题
  • Sass 快速入门教程
  • vue:响应原理
  • windows下使用nginx调试简介
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 百度小程序遇到的问题
  • 简析gRPC client 连接管理
  • 力扣(LeetCode)965
  • 排序算法之--选择排序
  • 使用putty远程连接linux
  • 树莓派 - 使用须知
  • 小程序button引导用户授权
  • 优秀架构师必须掌握的架构思维
  • 源码安装memcached和php memcache扩展
  • 走向全栈之MongoDB的使用
  • 阿里云重庆大学大数据训练营落地分享
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​香农与信息论三大定律
  • #Linux(权限管理)
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (7)STL算法之交换赋值
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (windows2012共享文件夹和防火墙设置
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (简单) HDU 2612 Find a way,BFS。
  • (七)Java对象在Hibernate持久化层的状态
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .form文件_SSM框架文件上传篇
  • .Net Remoting(分离服务程序实现) - Part.3