POJ1934 Trip 题解】的更多相关文章

LCS 模板,但要输出具体方案,这就很毒瘤了. 神奇的预处理:fa[i][j]表示在 \(a\) 串的前 \(i\) 个字符中,字母表第 \(j\) 个字母最晚出现的位置,fb[i][j]同理. 这样我们便可以递归找路径,对于两指针的位置的字母相同就向下递归,否则用预处理数组枚举相同位置再递归. 还要按字典序输出,开个set就行了. #include <bits/stdc++.h> using namespace std; const int N=85; char a[N],b[N],s[N]…
[题解]POJ1934 Trip (DP+记录方案) 题意: 传送门 刚开始我是这么设状态的(谁叫我DP没学好) \(dp(i,j)\)表示钦定选择\(i\)和\(j\)的LCS,然而你会发现这样钦定没什么用. 还不如当时初学者的时候的\(dp(i,j)\)表示考虑到\(i\)考虑到\(j\)的LCS...果然经典的是禁得起考验的... 考虑如何记录方案,第一个想法是直接暴力记录从哪转移的,但是这样显然不行.因为有很多重复的元素. 注意到题目保证本质不同的满足答案要求的串的个数是\(O(n)\)…
Trip Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3850   Accepted: 1030 Description Alice and Bob want to go on holiday. Each of them has planned a route, which is a list of cities to be visited in a given order. A route may contain a…
问题描述 Alice and Bob want to go on holiday. Each of them has planned a route, which is a list of cities to be visited in a given order. A route may contain a city more than once. As they want to travel together, they have to agree on a common route. No…
题目传送门:https://www.luogu.org/problemnew/show/SP33 题目大意:给出两个字符串,求其LCS(最长公共子序列)的长度与具体方案(相同的串算作同一方案).数据组数$\leq 10$,字符串长度$\leq 80$,方案数$\leq 1000$ 本来以为这是一道LCS水题,结果超级low的各种输出方案的方法TLE到怀疑人生 于是一个高大上的输出方法出现(借鉴于https://blog.csdn.net/gg_gogoing/article/details/41…
Luogu Description 爱丽丝和鲍伯想去度假,他们每个人都制定了一个参观城市的清单,该地区正好有26个城市,因此它们被编码为小写字母“a”到“z”.清单上可能重复出现某个城市.因为他们想一起旅行,他们必须走同样的路线.他们不想增加城市或改变城市顺序,所以只能从名单上删除一些城市.他们想尽可能多地参观城市.请你将他们两人的清单合成一个清单. Input 输入的第一行包含一个整数,表示测试用例数T(T<=10).每个测试用例有两行:第一行是爱丽丝的列表,第二行是鲍伯的列表.每个列表包含1…
POJ2279 Mr. Young's Picture Permutations 题意 Language:Default Mr. Young's Picture Permutations Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2513 Accepted: 960 Description Mr. Young wishes to take a picture of his class. The students will…
题目意思: 有两个字符串(长度\(<=80\)),按字典序输出它们的最长公共子串的所有情况. 解析 最长公共子序列的长度应该都没问题了吧...有问题请自行百度 但关键是要求出每种情况,还要按字典序... 考虑到长度\(<=80\),我们可以用搜索+剪枝, 设两个串为\(a\),\(b\),长度为\(la\),\(lb\), \(f[i][j]\)表示\(a\)串中的\(1\)~\(i\)与\(b\)串中的$ 1\(~\)j$的最长公共子序列的长度. 先求出最长公共子序列的长度\(len\)=\…
题目大意 给定一颗大小为 \(N\) 的树, \(1\)的度数不小于 \(2\) .每个点有一个颜色,要么为黑色要么为白色. 从 \(1\) 号点开始游走,计数器初始为 \(0\). 如果当前为黑点计数器增加 \(1\);否则如果是第一次经过当前点计数器增加 \(1\). 如果当前点度数为 \(1\) 停止游走;否则等概率随机走向相邻点. 求最后计数器值的期望,对大质数取模. \(N ≤ 10^6\) 解题思路 黑点白点贡献分别计算 对于白点,设 \(Q_u\) 表示从 \(u\) 出发可以随机…
Mishka and trip 题意: 有n个城市,第i个城市与第i+1个城市相连,他们边的权值等于i的美丽度*i+1的美丽度,有k个首都城市,一个首都城市与每个城市都相连,求所有边的权值. 题解: 先把n个城市存下来,之后开一个标记数组,来标记k个首都(这题这块很巧妙,正因为开了标记首都的数组,所以才把O(N^2)的算法降到了O(N)) 把所有城市的美丽值都加起来,遍历首都,每次遍历完就sum-首都,这样,最后求环的剩下的边就好了,环的剩下的边就是i不是首都,i+1也不是首都,那么就i*i+1…