HDU 1243 反恐训练营 (动态规划求最长公共子序列)
反恐训练营
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 3040 Accepted Submission(s): 693
炜炜是反恐特警队的一名新队员。如今正在接受培训。这几天刚好是射击训练第二阶段——实弹应变训练的日子,此前的第一阶段里。炜炜经过努力,已经将自己训练成为一个百发百中的神抢手了!这次,他将背着国产最新型12.7mm重型狙击枪进行训练比赛。
这次训练比赛的规则是这种:
1、每一个队员从出发点開始。沿着一条唯一的笔直道路跑直到终点,途中不同意往回跑,否则将被取消比赛资格。
2、出发前。每一个队员的枪膛内都被装了顺序一样的、用小写英文字母标明类型的子弹序列。每位队员被告知这一序列的信息;同一时候,每位队员也被告知恐怖分子即将出现的序列和类型(相同用小写英文字母标明类型)。
3、在跑动的过程中。若发现“恐怖分子”,特警队员能够选择用枪击毙他。来得到写在“恐怖分子”胸前的得分,可是前提是他使用的子弹类型必须和“恐怖分子”类型同样,否则,即使击毙了“恐怖分子”,也得不到分数;当然选择不击毙他也是能够的。这样他不会从那个“恐怖分子”身上得到分数。
4、同意特警队员放空枪。这样能够消耗掉型号不正确的子弹而不至于杀死“恐怖分子”(当然每一个特警队员都不会愚蠢到不装消音装置就放空枪,以至于吓跑“恐怖分子”)。等待枪口出现正确型号的子弹击毙他得分。
这里。我们假定:
1、对于每一个队员,途中出现恐怖分子的地点、时间、类型也是全然一样的。
2、每颗子弹都是质量合格的,都能够发挥杀伤效力
3、因为队员各个都是神枪手,一旦他选择了正确的子弹,向目标射击,目标100%被爆头
4、每一个队员的记忆力超强,能记住全部子弹序列信息和恐怖分子序列信息。
5、每一个队员体力足够好,能跑全然程,并做他想要做的
6、“恐怖分子”是不动的。小范围内不存在多于一个的恐怖分子。
炜炜须要你的帮助。告诉他怎样做,才干得到最高的分数。如今假设告诉你出发时枪膛内子弹的序号和型号、恐怖分子出现的序号和类型,你能告诉炜炜他最多能得到多少分数吗?
第三第四行分别表示開始时枪膛内子弹的序列(左边的先打出)和恐怖分子出现的序列(左边的先出现)。字母之间都没有不论什么字符。
每一个測试数据之间没有空格和空行。
你的程序必须通过所有測试数据。才干被判为AC。
3
abc
1 1 1
abc
ccc
3
abc
1 1 1
ccc
aba
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 反恐训练营 (动态规划求最长公共子序列)的更多相关文章
- hdu 1243 反恐训练营 最长公共字序列
此题的题意很明确,就是求最长公共子序列: #include<iostream> #include<algorithm> #include<cstdio> #incl ...
- HDU 1159 Common Subsequence (动态规划、最长公共子序列)
Common Subsequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- HDU - 1243 - 反恐训练营
先上题目: 反恐训练营 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- HDU 1243 反恐训练营(最长公共序列)
反恐训练营 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...
- 动态规划求最长公共子序列(Longest Common Subsequence, LCS)
1. 问题描述 子串应该比较好理解,至于什么是子序列,这里给出一个例子:有两个母串 cnblogs belong 比如序列bo, bg, lg在母串cnblogs与belong中都出现过并且出现顺序与 ...
- hdu 1243 反恐训练营(dp 最大公共子序列变形)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1243 d[i][j] 代表第i 个字符与第 j 个字符的最大的得分.,, 最大公共子序列变形 #inclu ...
- hdu 1503:Advanced Fruits(动态规划 DP & 最长公共子序列(LCS)问题升级版)
Advanced Fruits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- Coincidence (动态规划求最长公共子序列)(王道)
题目描述: Find a longest common subsequence of two strings. 输入: First and second line of each input case ...
- HDU 4681 string 求最长公共子序列的简单DP+暴力枚举
先预处理,用求最长公共子序列的DP顺着处理一遍,再逆着处理一遍. 再预处理串a和b中包含串c的子序列,当然,为了使这子序列尽可能短,会以c 串的第一个字符开始 ,c 串的最后一个字符结束 将这些起始位 ...
随机推荐
- codeforces 666E. Forensic Examination(广义后缀自动机,Parent树,线段树合并)
传送门: 解题思路: 很坑的一道题,需要离线处理,假如只有一组询问,那么就可以直接将endpos集合直接累加输出就好了. 这里就要将询问挂在树节点上,在进行线段树合并时查询就好了. 代码超级容易写挂的 ...
- Linux的一些简单命令操作
防火墙 查看防火墙状态 systemctl status iptables (或service iptables status) 关闭防火墙 systemctl stop iptables(或serv ...
- [Javascript] Different ways to create an new array/object based on existing array/object
Array: 1. slice() const newAry = ary.slice() 2. concat const newAry = [].concat(ary) 3. spread oprea ...
- Node.js笔记 http fs
const http=require('http'); const fs=require('fs'); var server = http.createServer(function(req, res ...
- shell学习四十天----awk的惊人表现
awk的惊人表现 awk能够胜任差点儿全部的文本处理工作. awk 调用 1.调用awk: 方式一:命令行方式 awk [-F field-separator ] 'commands' inp ...
- 逻辑与和逻辑或:&& 、||
逻辑或:首先看左边是真还是假(除了那5个都是真),如果为真,返回左边值,如果为假,返回右边的值 逻辑与:和逻辑或相同,先看左边的值是真是假,如果左边为真返回右边的值,左边为假返回左边的值 在两者同时出 ...
- POJ 2236 Wireless Network ||POJ 1703 Find them, Catch them 并查集
POJ 2236 Wireless Network http://poj.org/problem?id=2236 题目大意: 给你N台损坏的电脑坐标,这些电脑只能与不超过距离d的电脑通信,但如果x和y ...
- POJ 3723 Conscription MST
http://poj.org/problem?id=3723 题目大意: 需要征募女兵N人,男兵M人,没征募一个人需要花费10000美元,但是如果已经征募的人中有一些关系亲密的人,那么可以少花一些钱, ...
- jmeter--元件的作用域与执行顺序
1.元件的作用域 JMeter中共有8类可被执行的元件(测试计划与线程组不属于元件),这些元件中,取样器是典型的不与其它元件发生交互作用的元件,逻辑控制器只对其子节点的取样器有效,而其它元件(conf ...
- SQL Server 中计算农历
1.建一表,放初始化资料 因为农历的日期,是由天文学家推算出来的,到现在只有到2049年的,以后的有了还可以加入! CREATE TABLE SolarData ( yearId int no ...