HDU-6170 Two strings】的更多相关文章

/* HDU 6170 - Two strings [ DP ] | 2017 ZJUT Multi-University Training 9 题意: 定义*可以匹配任意长度,.可以匹配任意字符,问两串是否匹配 分析: dp[i][j] 代表B[i] 到 A[j]全部匹配 然后根据三种匹配类型分类讨论,可以从i推到i+1 复杂度O(n^2) */ #include <bits/stdc++.h> using namespace std; const int N = 2505; int t;…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6170 题意:给了2个字符串,其中第2个字符串包含.和*两种特别字符,问第二个字符串能否和第一个匹配. 解法:dp[i][j]代表在第一个串的i位置,第2个串的j位置是否可以匹配,然后按照'*'这个特殊情况讨论转移即可. #include <bits/stdc++.h> using namespace std; const int maxn = 3005; bool dp[maxn][maxn];…
/** * 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6170 * 字符串match, '.'代表匹配任意一个字符,"*" 代表前面的那个字符可以重复 * 出现0到无穷次. * * 思路: dp[i][j];代表前i个字符与另一个前j个字符是否能匹配? true:false: * 假设i是B串,j是A串 * 如果是:不是*,那就直接判断相等或者其中一个是否为点.是进行转移 dp[i][j]=dp[i-1][j-1]; * 如果是*,我…
http://acm.hdu.edu.cn/showproblem.php?pid=6170 题目大意: 给出两个字符串s1和s2(长度小于等于2500). s1是一个正常的包含大小写字母的字符串,s2是一个类似正则表达式的字符串,除了大小写字母,还有 " . " 和 " * " 两种符号. " . " 表示可以匹配任意一个字母. " * "表示前一个字符可以重复出现任意次(包括零). 解题思路: 一道标准的dp O(n^2)…
Two strings Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem Description Giving two strings and you should judge if they are matched.The first string contains lowercase letters and uppercase letters.The seco…
题目链接 Problem Description Giving two strings and you should judge if they are matched. The first string contains lowercase letters and uppercase letters. The second string contains lowercase letters, uppercase letters, and special symbols: "." an…
Two strings Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 485    Accepted Submission(s): 178 Problem Description Giving two strings and you should judge if they are matched.The first string co…
                                Surprising Strings Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u   Description The D-pairs of a string of letters are the ordered pairs of letters that are distance D from each other. A s…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6165 题意:给你一个无环,无重边的有向图,问你任意两点,是否存在路径使得其中一点能到达另一点 解析:强联通后拓扑排序,因为对于每一层来说只能有一个入度为零的点,若存在两个,那么就会存在一对点不可达 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<…
重点在判重的方法,嘻嘻 题目 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> int main() { ],num,flag; ]; while(gets(ch)) { )break; len=strlen(ch); flag=; ;i<len;i++) { memset(mark,,sizeof(mark)); ;j<len-i;j++) { num=(ch[j]-)*+ch[j…