反恐训练营

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 3040    Accepted Submission(s): 693

Problem Description
当今国际反恐形势非常严峻,特别是美国“9.11事件”以后,国际恐怖势力更是有恃无恐,制造了多起骇人听闻的恐怖事件。基于此,各国都十分操心恐怖势力会对本国社会造成的不稳定,于是纷纷在本国的军队、警察队伍中开展了反恐训练。作为反恐立场坚定的大国,中国也十分重视在人民解放军、武装警察部队、人民警察队伍中反恐训练。还专门成立了反恐特警队。



炜炜是反恐特警队的一名新队员。如今正在接受培训。这几天刚好是射击训练第二阶段——实弹应变训练的日子,此前的第一阶段里。炜炜经过努力,已经将自己训练成为一个百发百中的神抢手了!这次,他将背着国产最新型12.7mm重型狙击枪进行训练比赛。

这次训练比赛的规则是这种:



1、每一个队员从出发点開始。沿着一条唯一的笔直道路跑直到终点,途中不同意往回跑,否则将被取消比赛资格。

2、出发前。每一个队员的枪膛内都被装了顺序一样的、用小写英文字母标明类型的子弹序列。每位队员被告知这一序列的信息;同一时候,每位队员也被告知恐怖分子即将出现的序列和类型(相同用小写英文字母标明类型)。

3、在跑动的过程中。若发现“恐怖分子”,特警队员能够选择用枪击毙他。来得到写在“恐怖分子”胸前的得分,可是前提是他使用的子弹类型必须和“恐怖分子”类型同样,否则,即使击毙了“恐怖分子”,也得不到分数;当然选择不击毙他也是能够的。这样他不会从那个“恐怖分子”身上得到分数。

4、同意特警队员放空枪。这样能够消耗掉型号不正确的子弹而不至于杀死“恐怖分子”(当然每一个特警队员都不会愚蠢到不装消音装置就放空枪,以至于吓跑“恐怖分子”)。等待枪口出现正确型号的子弹击毙他得分。

这里。我们假定:

1、对于每一个队员,途中出现恐怖分子的地点、时间、类型也是全然一样的。

2、每颗子弹都是质量合格的,都能够发挥杀伤效力

3、因为队员各个都是神枪手,一旦他选择了正确的子弹,向目标射击,目标100%被爆头

4、每一个队员的记忆力超强,能记住全部子弹序列信息和恐怖分子序列信息。

5、每一个队员体力足够好,能跑全然程,并做他想要做的

6、“恐怖分子”是不动的。小范围内不存在多于一个的恐怖分子。



炜炜须要你的帮助。告诉他怎样做,才干得到最高的分数。如今假设告诉你出发时枪膛内子弹的序号和型号、恐怖分子出现的序号和类型,你能告诉炜炜他最多能得到多少分数吗?

 
Input
输入数据的第一行有一个整数N表示子弹和恐怖分子的类型数。随后的一行是各种恐怖分子类型的一行字母。两个字母之间没有不论什么字符。接下来的一行是击毙上一行相应位置恐怖分子类型的得分数,每一个分数之间恰有一个空格。

第三第四行分别表示開始时枪膛内子弹的序列(左边的先打出)和恐怖分子出现的序列(左边的先出现)。字母之间都没有不论什么字符。

每一个測试数据之间没有空格和空行。

你的程序必须通过所有測试数据。才干被判为AC。

 
Output
对于每个測试数据。输出炜炜最多能得到的分数。
 
Sample Input
3
abc
1 1 1
abc
ccc
3
abc
1 1 1
ccc
aba
 
Sample Output
1
0
 

还是求最长公共子序列。可是每次遇到同样的字母后。该加上字母相应的分数

#include<stdio.h>
#include<map>
#include<string>
#include<vector>
#include<iostream>
using namespace std;
int N;
int main(int argc, char *argv[])
{
vector<vector<int> >c;
map<int,char>m;
string s,a,b;
int score;
while(~scanf("%d",&N))
{
cin>>s;
for(int i=0;i!=s.size();++i)
{
scanf("%d",&score);
m[s[i]]=score;
}
cin>>a;
cin>>b;
int x=a.size();
int y=b.size();
int SIZE=x>y?x:y;
SIZE+=1;
c.resize(SIZE);
for(int i=0;i<c.size();++i)
{
c[i].resize(SIZE);
}
for(int i=0;i<x;++i)
c[i][0]=0;
for(int j=0;j<y;++j)
c[0][j]=0;
for(int i=1;i<=x;++i)
for(int j=1;j<=y;++j)
{
if(a[i-1]==b[j-1])
{
c[i][j]=c[i-1][j-1]+m[a[i-1]];
}
else if(c[i][j-1]>=c[i-1][j])
{
c[i][j]=c[i][j-1];
}
else
c[i][j]=c[i-1][j];
}
printf("%d\n",c[x][y]);
}
return 0;
}

HDU 1243 反恐训练营 (动态规划求最长公共子序列)的更多相关文章

  1. hdu 1243 反恐训练营 最长公共字序列

    此题的题意很明确,就是求最长公共子序列: #include<iostream> #include<algorithm> #include<cstdio> #incl ...

  2. HDU 1159 Common Subsequence (动态规划、最长公共子序列)

    Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  3. HDU - 1243 - 反恐训练营

    先上题目: 反恐训练营 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  4. HDU 1243 反恐训练营(最长公共序列)

    反恐训练营 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  5. 动态规划求最长公共子序列(Longest Common Subsequence, LCS)

    1. 问题描述 子串应该比较好理解,至于什么是子序列,这里给出一个例子:有两个母串 cnblogs belong 比如序列bo, bg, lg在母串cnblogs与belong中都出现过并且出现顺序与 ...

  6. hdu 1243 反恐训练营(dp 最大公共子序列变形)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1243 d[i][j] 代表第i 个字符与第 j 个字符的最大的得分.,, 最大公共子序列变形 #inclu ...

  7. hdu 1503:Advanced Fruits(动态规划 DP & 最长公共子序列(LCS)问题升级版)

    Advanced Fruits Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  8. Coincidence (动态规划求最长公共子序列)(王道)

    题目描述: Find a longest common subsequence of two strings. 输入: First and second line of each input case ...

  9. HDU 4681 string 求最长公共子序列的简单DP+暴力枚举

    先预处理,用求最长公共子序列的DP顺着处理一遍,再逆着处理一遍. 再预处理串a和b中包含串c的子序列,当然,为了使这子序列尽可能短,会以c 串的第一个字符开始 ,c 串的最后一个字符结束 将这些起始位 ...

随机推荐

  1. Java 批量修改文件后缀

    import java.io.*; public class test { public void reName(String path, String from, String to) { File ...

  2. SpringMVC,Mybatis,FreeMarker连接mycat示例(一)

    首页 > 程序开发 > 软件开发 > Java > 正文 SpringMVC,Mybatis,FreeMarker连接mycat示例(一) 项目结构如图: 首先是各种配置文件, ...

  3. POJ 2253-Frogger (Prim)

    题目链接:Frogger 题意:两仅仅青蛙,A和B,A想到B哪里去,可是A得弹跳有限制,所以不能直接到B,可是有其它的石头作为过渡点,能够通过他们到达B,问A到B的全部路径中.它弹跳最大的跨度的最小值 ...

  4. “焦点图/幻灯片”“Tab标签切换”“图片滚动”“无缝滚动”仅需一个SuperSlidev2.1

    官网:http://www.superslide2.com/index.html 1. 标签切换 / 书签切换 / 默认效果 2. 焦点图 / 幻灯片 3. 图片滚动-左 4. 图片滚动-上 5. 图 ...

  5. time and datetime

    一.简述 我们在写代码的过程经常遇到时间模块,如果我们以后需要根据时间去筛选信息的话,那用户会更大,所以今天就来讲讲时间的两大模块:time & datetime 二.time模块 1.tim ...

  6. 语音识别系统:有免费实用的"语音到文字"的软件么?

    自从看了<李开复自传>,就对"语音识别系统"产生了非常深刻的印象. 根据自己的判断,语音识别系统还是非常有用的. 以自己的实际需求来看: 1.中国象棋中的应用. 中国象 ...

  7. 洛谷——P1096 Hanoi双塔问题

    https://www.luogu.org/problem/show?pid=1096 题目描述 给定A.B.C三根足够长的细柱,在A柱上放有2n个中间有孔的圆盘,共有n个不同的尺寸,每个尺寸都有两个 ...

  8. GPUImage ==> 一个基于GPU图像和视频处理的开源iOS框架

    Logo 项目介绍: GPUImage是Brad Larson在github托管的开源项目. GPUImage是一个基于GPU图像和视频处理的开源iOS框架,提供各种各样的图像处理滤镜,并且支持照相机 ...

  9. 【codeforces 434 div 1 A】Did you mean...

    [链接]h在这里写链接 [题意] 让你维护一段序列. 这段序列,不会出现连续3个以上的辅音. (或者一块全是辅音则也可以) (用空格可以断开连续次数); 要求空格最小. [题解] 模拟着,别让它出现连 ...

  10. php杂项函数

    php杂项函数 一.总结 看着函说作用 函数 描述 PHP     constant() 返回一个常量的值. 4 define() 定义一个常量. 3 defined() 检查某常量是否存在. 3 d ...