LCS LIS 与LCIS
Ac-try
这个作者很懒,什么都没留下…
展开
-
uva-111 G - History Grading
#include #include int str1[25]; int str2[25]; int maxlen[25][25]; int main(){ int n,t; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&t); str1[t-1]=i+1; } while(原创 2014-11-10 17:11:59 · 345 阅读 · 0 评论 -
Testing the CATCHER
最长非上升子序列 贪心: #include const int Max=10000; int str[Max+10]; int stack[Max+10]; int bsearch(int num,int top){ int low=1,high=top; while(low<=high){ int mid=(low+high)/2; if(nu原创 2014-11-16 18:48:19 · 384 阅读 · 0 评论 -
UVA—10131 Is Bigger Smarter?
The Problem Some people think that the bigger an elephant is, the smarter it is. To disprove this, you want to take the data on a collection of elephants and put as large a subset of this data as p原创 2014-11-16 20:32:48 · 331 阅读 · 0 评论 -
UVA--531 Compromise
In a few months the European Currency Union will become a reality. However, to join the club, the Maastricht criteria must be fulfilled, and this is not a trivial task for the countries (maybe except原创 2014-11-12 22:25:49 · 277 阅读 · 0 评论 -
LCS常用模板总结
1.求最长公共子串长度: (1)原创 2014-11-12 22:16:10 · 487 阅读 · 0 评论 -
最长公共子序列问题LCS
问题描述 一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=x1, x2,…, xm>,则另一序列Z=z1, z2,…, zk>是X的子序列是指存在一个严格递增的下标序列 i1, i2,…, ik>,使得对于所有j=1,2,…,k有 例如,序列Z=是序列X=的子序列,相应的递增下标序列为。 给定两个序列X和Y,当另一序列Z既是X的子序列又是Y的转载 2014-11-10 17:33:28 · 1720 阅读 · 0 评论 -
最长公共子序列
#include #include const int Max=1000; char str1[Max],str2[Max]; int maxlen[Max][Max]; int main(){ while(scanf("%s%s",&str1,&str2)==2){ int len1=strlen(str1); int len2=strlen(str2);原创 2014-11-01 11:02:40 · 313 阅读 · 0 评论 -
UVA--10252 Common Permutation
Given two strings of lowercase letters, a and b, print the longest string x of lowercase letters such that there is a permutation of x that is a subsequence of a and there is a permutation of x that原创 2014-11-11 14:07:11 · 497 阅读 · 0 评论 -
UVA--10066 The Twin Towers
#include #include const int Max=100; int str1[Max+10]; int str2[Max+10]; int maxlen[Max+10][Max+10]; int main(){ int cnt=0; int l1,l2; while(scanf("%d%d",&l1,&l2)==2){ if(l1==0&&l2原创 2014-11-10 17:24:46 · 314 阅读 · 0 评论 -
最长上升子序列
求最长上升的子序列 1.找子问题“求以ak(k=1, 2, 3…N)为终点的最长上升子序列的长度” 一个上升子序列中最右边的那个数,称为该子序列的 “终点”。 虽然这个子问题和原问题形式上并不完全一样,但 是只要这N个子问题都解决了,那么这N个子问题的解中, 最大的那个就是整个问题的解。 41 2. 确定状态: 子问题只和一个变量-- 数字的位置相关。因此序列中数 的位置k 就原创 2014-10-30 01:11:08 · 392 阅读 · 0 评论 -
输出最长公共子序列字母表顺序
#include #include #include using namespace std; const int Max=1000; char str1[Max+10]; char str2[Max+10]; char str[Max+10]; int p[Max+10][Max+10]; int maxlen[Max+10][Max+10]; int cnt=0; void print(int原创 2014-11-11 02:05:06 · 476 阅读 · 0 评论 -
UVA 12511 Virus
We have a log file, which is a sequence of recorded events. Naturally, the timestamps are strictly increasing. However, it is infected by a virus, so random records are inserted (but the order of ori原创 2014-11-18 07:05:30 · 432 阅读 · 0 评论