J - 病毒

J - 病毒

Time Limit:3000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu

Submit Status Practice CSU 1120

Description

你有一个日志文件,里面记录着各种系统事件的详细信息。自然的,事件的时间戳按照严格递增顺序排列(不会有两个事件在完全相同的时刻发生)。

遗憾的是,你的系统被病毒感染了,日志文件中混入了病毒生成的随机伪事件(但真实事件的相对顺序保持不变)。备份的日志文件也被感染了,但由于病毒采用的随机感染方法,主日志文件和备份日志文件在感染后可能会变得不一样。

给出被感染的主日志和备份日志,求真实事件序列的最长可能长度。

Input

输入第一行为数据组数T (T<=100)。每组数据包含两行,分别描述感染后的主日志和备份日志。

每个日志文件的格式相同,均为一个整数n (1<=n<=1000)(代表感染后的事件总数)和n 个不超过100,000的正整数(表示感染后各事件的时间戳)。

注意,感染后可能会出现时间戳完全相同的事件。

Output

对于每组数据,输出真实事件序列的最长可能长度。

Sample Input

1
9 1 4 2 6 3 8 5 9 1
6 2 7 6 3 5 1 

有  求最长递增公共子序列。对公共子序列分类,可以分为以a[1]结尾,以a[2]结尾,……以a[n]结尾,去匹配B【1-n}.由于是求递增的,所以最后一个是最大的数。以a[i]结尾,我们扫一遍b[1-m],如果b[j]==a[i],那么d[j]=max+1,其中max是d[1-j-1]中最大的值。如果b[j]<a[i]&&max<d[j],则max=d[j],对于b[j]>a[i]需要舍弃。
 1 #include"iostream"
 2 #include"cstdio"
 3 #include"cstring"
 4 using namespace std;
 5 const int ms=1005;
 6 int dp[ms];
 7 int a[ms];
 8 int b[ms];
 9 int main()
10 {
11     int T,i,j,n,m,k,ans,Max;
12     cin>>T;
13     while(T--)
14     {
15         memset(dp,0,sizeof(dp));
16         cin>>n;
17         for(i=0;i<n;i++)
18             cin>>a[i];
19         cin>>m;
20         for(i=0;i<m;i++)
21             cin>>b[i];
22         for(i=0;i<n;i++)
23         {
24             Max=0;
25             for(j=0;j<m;j++)
26             {
27                 if(b[j]<a[i]&&Max<dp[j])
28                     Max=dp[j];
29                 if(b[j]==a[i])
30                     dp[j]=Max+1;
31             }
32         }
33         Max=0;
34         for(i=0;i<m;i++)
35             if(Max<dp[i])
36                 Max=dp[i];
37         cout<<Max<<endl;
38     }
39     return 0;
40 }
时间: 2024-10-24 02:15:36

J - 病毒的相关文章

湖南省第八届大学生程序设计大赛原题 J

J - 病毒 Time Limit:3000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu Submit Status Practice CSU 1120 Description 你有一个日志文件,里面记录着各种系统事件的详细信息.自然的,事件的时间戳按照严格递增顺序排列(不会有两个事件在完全相同的时刻发生). 遗憾的是,你的系统被病毒感染了,日志文件中混入了病毒生成的随机伪事件(但真实事件的相对顺序保持不变).备份的日志

网络中的一些小便宜尽量别去占

"'网络钓鱼( Phishing)'作为一种网络诈骗手段,算不上新鲜事物,而且没有太多技术含量,主要是利用人们的心理来实现诈骗",一位国内的安全技术人员评论说. 尽管在安全技术人员眼里"网络钓鱼"只是小菜一碟,但它在过去一年中非常猖獗-Gartner公司最近一项调查表明,约5700万名美国消费者收到过此类仿冒的电子邮件,有高达5%的人都会对这些骗局作出响应.由于"网络钓鱼"技术不断升级,这种诈骗会快速蔓延到通过电子邮件与客户通信的所有商业领域,任

最长公共上升子序列(LCIS)问题的O(n^2)解法

J - 病毒 Time Limit:3000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu Submit Status Practice CSU 1120 Appoint description:  System Crawler  (2015-01-04) Description 你有一个日志文件,里面记录着各种系统事件的详细信息.自然的,事件的时间戳按照严格递增顺序排列(不会有两个事件在完全相同的时刻发生). 遗憾的是,

CSU-1120 病毒(最长递增公共子序列)

你有一个日志文件,里面记录着各种系统事件的详细信息.自然的,事件的时间戳按照严格递增顺序排列(不会有两个事件在完全相同的时刻发生). 遗憾的是,你的系统被病毒感染了,日志文件中混入了病毒生成的随机伪事件(但真实事件的相对顺序保持不变).备份的日志文件也被感染了,但由于病毒采用的随机感染方法,主日志文件和备份日志文件在感染后可能会变得不一样. 给出被感染的主日志和备份日志,求真实事件序列的最长可能长度. Input 输入第一行为数据组数T (T<=100).每组数据包含两行,分别描述感染后的主日志

[bzoj1966][Ahoi2005][VIRUS 病毒检测] (字符串dp)

Description 科学家们在Samuel星球上的探险仍在继续.非常幸运的,在Samuel星球的南极附近,探险机器人发现了一个巨大的冰湖!机器人在这个冰湖中搜集到了许多RNA片段运回了实验基地.科学家们经过几个昼夜的研究,发现这些RNA片段中有许多是未知的病毒!每个RNA片段都是由A.C.T.G组成的序列.科学家们也总结出了Samuel星球上的“病毒模版片段”.一个模版片段是由A.C.T.G的序列加上通配符 * 和 ? 来表示.其中 * 的意思是可以匹配上0个或任意多个字符,而 ? 的意思是

[HDOJ2065]&quot;红色病毒&quot;问题

"红色病毒"问题 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4742    Accepted Submission(s): 1985 Problem Description 医学界发现的新病毒因其蔓延速度和Internet上传播的"红色病毒"不相上下,被称为"红色病毒",经研究发现,

HDU 2896 病毒侵袭(AC自动机模版题)

AC自动模版题,中文题目就不叙述题意了啊. AC自动主要是构造出字典树之后找到fail指针的跳转,类似于KMP里面的next数组的跳转啊,注意这里是多模式跳转.意思就是这个串跳到下一个串的什么位置啊. 先帖一下,做多了再一起总结吧. 病毒侵袭 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 11347    Accepted Submi

HDU 2896 病毒侵袭 AC自动机题解

本题是在text里面查找key word的增强版,因为这里有多个text. 那么就不可以简单把Trie的叶子标志记录修改成-1进行加速了,可以使用其他技术,我直接使用个vis数组记录已经访问过的节点,达到加速效果,速度还算挺快的. 不过看discuss里面有人直接使用Trie,做出了140ms的速度,而且他的程序严格来说并不正确,可见本题的数据很水啊.Trie的时间效率肯定比AC自动机低,但是在数据很水的特殊情况下,Trie的速度也可以很快的. 注意两个细节: 1 病毒也需要安装顺序输出,不小心

hdu2896 病毒侵袭 ac自动机

地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=2896 题目: 病毒侵袭 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 23013    Accepted Submission(s): 5551 Problem Description 当太阳的光辉逐渐被月亮遮蔽,世界失去了光明,大