首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
【luogu P1666 前缀单词】 题解
】的更多相关文章
【luogu P1666 前缀单词】 题解
题目链接:https://www.luogu.org/problemnew/show/P1666 10.13考试题 当时没想出来,觉得是要用trie做,在trie上跑一个树形dp 结果是写了个子集枚举还炸了 后来这道题可以暴力+string类型解 还是string用的少啊 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define ll long…
洛谷 P1666 前缀单词 题解
题意:给n个单词,如果单词a为单词b的前缀则a,b不能共存,问能共存的集合数(包括空集) 一道dp题,排序后判断,f[i][j]表示i和j是否能共存,f[i][j]=1表示能共存,初始化dp[i]=1,表示只有i一个单词,dp[i]表示前i个单词且一定含有第i个单词的集合数,如果f[i][j]=1,则dp[j]+=dp[i] (size(j)>=size(i)) 代码 #include<bits/stdc++.h> using namespace std; string a[60]; l…
Luogu P1666 前缀单词
校内资格赛题目,差点高一就要\(\tt{AFO}\)了 30分思路 对30%的数据,满足$1≤n≤10 $ 所以我们可以子集枚举,实际得分40pts #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<queue> using namespace std; int read(){ int k=0; char c=getchar();…
P1666 前缀单词
P1666 前缀单词 tire树上跑dp 首先将trie树建出来,然后对于每个节点.考虑他的子节点. 子节点的方案数都互不干扰,所以子节点与其他子节点的的方案数可以利用乘法原理算出来. 然后如果这个节点是一个字符串的结尾.那么这个字符串可以单独作为一个集合.然后方案数+1. 如若无子节点,则这个节点是trie树中的叶子节点.那么有两种方案,选与不选. 然后如此做一个树形dp就可以了. #include<cstdio> #include<algorithm> #include<…
P1666前缀单词
题目传送门点我传送 Ⅰ.字典树+树型DP 非常奇妙的一种解法 第一部分:构建树 先对来的单词读入,插入字典树 然后对于一颗字典树,其实是有很多无用边的,所以我们需要删去一些边 删去非单词节点和非单词节点之间的边,其实就是下面这个函数 void rebuild(int now,int fa) { if(isok[now])//当前节点是单词 { vec[fa].push_back(now);//连边 fa=now;//换爸爸了 } for(int i=1;i<=26;i++) { if(!tree…
luogu P1026 统计单词个数
题目链接 luogu P1026 统计单词个数 题解 贪心的预处理母本串从i到j的最大单词数 然后dp[i][j] 表示从前i个切了k次最优解 转移显然 代码 #include<cstdio> #include<algorithm> #include<cstring> const int maxn = 507; char a[maxn]; char s[maxn],t[maxn]; int dp[maxn][55]; int n,k,q; int num[maxn][m…
luogu P2353 背单词
二次联通门 : luogu P2353 背单词 一眼看过去, 卧槽,AC自动机板子题 写完后T成SB 卧槽10^6 做个篮子啊 重构思路... 恩..Hash + 莫队... 恶心啊.. 找xxy dalao, AC自动机 + 前缀和 码完WA成SB 去群里找dalao 大佬告诉了我前缀和的正确使用姿势... 然后就依然WA成SB 做个毛线 贴一个AC自动机的30代码 #include <cstdio> #include <cstring> #include <queue&g…
C#版(击败100.00%的提交) - Leetcode 151. 翻转字符串里的单词 - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - Leetcode 151. 翻转字符串里的单词 - 题解 151.Reverse Words in a String 在线提交: https://leetcode-cn.com/problems/reverse-words-in-a-string/ 题目描述 给定一个字符串,逐个翻转字符串中的每个单词…
[luogu]P1026 统计单词个数[DP][字符串]
[luogu]P1026 统计单词个数 题目描述 给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个).要求将此字母串分成k份(1<k<=40),且每份中包含的单词个数加起来总数最大(每份中包含的单词可以部分重叠.当选用一个单词之后,其第一个字母不能再用.例如字符串this中可包含this和is,选用this之后就不能包含th). 单词在给出的一个不超过6个单词的字典中. 要求输出最大的个数. 输入输出格式 输入格式: 每组的第…
【洛谷 P1666】 前缀单词 (Trie)
题目链接 考试时暴搜50分...其实看到"单词","前缀"这种字眼时就要想到\(Trie\)的,哎,我太蒻了. 以一个虚点为根,建一棵\(Trie\),然后\(dfs\), 以当前点为根的答案就是\(Ans_u=(\prod_{\text{v是u的子树}}Ans_v)+\text{有单词以这个点结尾 ? 1 : 0}\),乘法原理嘛,如果有单词在这里结尾,那么就多一种情况:选这个单词且不选所有子树. 答案就是\(Ans_{\text{根}}\) #include &…