洛谷4059找爸爸(Code+第一次月赛)
题目:https://www.luogu.org/problemnew/show/P4059
dp。
1.看出-A-B(k-1)可以理解成连续空格的第一个 -A,其余 -B;
2.把会干扰的“上一步右端是不是空格”加进参数里;
3.初始化!!!!!!!
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char ch;
int a[],b[],n,m,c[][],d[][][][],A,B;
int num(char chh)//A=65 T=84 G=71 C=67
{
if(chh=='A')return ;
if(chh=='T')return ;
if(chh=='G')return ;
if(chh=='C')return ;
}
int main()
{
while()
{
scanf("%c",&ch);
if(ch==' ')continue;
if(ch=='\n')break;
a[++n]=num(ch);
}
while()
{
scanf("%c",&ch);
if(ch==' ')continue;
if(ch=='\n')break;
b[++m]=num(ch);
}
for(int i=;i<=;i++)
for(int j=;j<=;j++)
scanf("%d",&c[i][j]);
scanf("%d%d",&A,&B);
memset(d,-,sizeof d);
d[][][][]=-A;
for(int i=;i<=m;i++)
d[][i][][]=d[][i-][][]-B;
d[][][][]=-A;
for(int i=;i<=n;i++)
d[i][][][]=d[i-][][][]-B;
d[][][][]=;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
d[i][j][][]=max(d[i-][j-][][],max(d[i-][j-][][],d[i-][j-][][]))+c[a[i]][b[j]];
d[i][j][][]=max(d[i][j-][][]-B,max(d[i][j-][][]-A,d[i][j-][][]-A));
d[i][j][][]=max(d[i-][j][][]-B,max(d[i-][j][][]-A,d[i-][j][][]-A));
}
int ans=max(d[n][m][][],max(d[n][m][][],d[n][m][][]));
printf("%d",ans);
return ;
}
洛谷4059找爸爸(Code+第一次月赛)的更多相关文章
- 洛谷 P1509 找啊找啊找GF(复习二维费用背包)
传送门 题目背景 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手,你是我的好GF.再见." "诶,别再见啊..." 七夕...七夕...七夕这个日子,对于sq ...
- 洛谷——P2083 找人
P2083 找人 题目背景 无 题目描述 小明要到他的同学家玩,可他只知道他住在某一单元,却不知住在哪个房间.那个单元有N层(1,2……N),每层有M(1,2……M)个房间. 小明会从第一层的某个房间 ...
- 洛谷 P1509 找啊找啊找GF
题目背景 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手,你是我的好GF.再见." "诶,别再见啊..." 七夕...七夕...七夕这个日子,对于sqybi这 ...
- 洛谷——P1469 找筷子
P1469 找筷子 题目描述 经过一段时间的紧张筹备,电脑小组的“RP餐厅”终于开业了,这天,经理LXC接到了一个定餐大单,可把大家乐坏了!员工们齐心协力按要求准备好了套餐正准备派送时,突然碰到一个棘 ...
- 洛谷P1469找筷子
题目描述 经过一段时间的紧张筹备,电脑小组的“RP餐厅”终于开业了,这天,经理LXC接到了一个定餐大单,可把大家乐坏了!员工们齐心协力按要求准备好了套餐正准备派送时,突然碰到一个棘手的问题,筷子!CX ...
- 洛谷 P1469 找筷子
题目描述 经过一段时间的紧张筹备,电脑小组的“RP餐厅”终于开业了,这天,经理LXC接到了一个定餐大单,可把大家乐坏了!员工们齐心协力按要求准备好了套餐正准备派送时,突然碰到一个棘手的问题,筷子!CX ...
- 洛谷 P2083 找人
P2083 找人 题目背景 无 题目描述 小明要到他的同学家玩,可他只知道他住在某一单元,却不知住在哪个房间.那个单元有N层(1,2……N),每层有M(1,2……M)个房间. 小明会从第一层的某个房间 ...
- 洛谷P1938 找工就业
传送门啦 这个题本质就是跑一边最长路,重点就是在怎么建图上. 我们可以把点权放到边权上面,即将每一个边的终点点权当做这个边的边权,这个题里就是将工钱 $ d $ 当做边权. 如果这一条边需要坐飞机才能 ...
- 洛谷 P1469 找筷子 题解
题目传送门 先排序一遍,再一个一个判断是否有偶数个.注意for循环要i+=2. #include<bits/stdc++.h> using namespace std; ]; int ma ...
随机推荐
- web安全问题分析及处理
前言 这是我观看了<前端漏洞分析及处理-蔡慧芨>公开课之后的一个总结及简单实践体会.在可能的情况下我会把他们都实际操作一遍,更加深刻地体会前端安全的重要性. web安全问题有哪些 XSS- ...
- JavaScript学习总结(十八)——JavaScript获取浏览器类型与版本
从网上找到一段使用JavaScript判断浏览器以及浏览器版本的比较好的代码,在此记录一下: 1 <script type="text/javascript"> 2 v ...
- BZOJ3895 取石子
Orz PoPoQQQ 我等蒟蒻只能想到石子数 ≥ 2时的情况...1的时候就爆搜?大概是这个意思 最后再记忆化一下 /**************************************** ...
- java基本类型的大小
1个字节是8位byte 1字节short 2字节int 4字节long 8字节float 4字节double 8字节char 2字节boolean 1字节======================= ...
- Spring学习笔记之The IoC container
IoC is also known as dependency injection (DI). 这是一个过程?什么样的过程呢?对象自己定义它的依赖关系,这意味着,那些他们依赖的对象,只能通过构造函数参 ...
- 手把手教你搭建一个Elasticsearch集群
一.为何要搭建 Elasticsearch 集群 凡事都要讲究个为什么.在搭建集群之前,我们首先先问一句,为什么我们需要搭建集群?它有什么优势呢? (1)高可用性 Elasticsearch 作为一个 ...
- Python 编程核心知识体系-模块|面向对象编程(三)
模块 面向对象编程
- include指令和include动作有什么区别?
include指令 称为文件加载指令,可以将其他的文件插入jsp网页,被插入的文件必须保证插入后形成的新文件符合jsp页面的语法规则. include指令语法格式:<%@incl ...
- L228 the complicated issue of equality: non-disabled actors play disabled roles
Bryan Cranston’s defence of playing a wheelchair user in the new comedy-drama The Upside has underli ...
- Thrift之双向通讯
在实际应用中,却经常会有客户端建立连接后,等待服务端数据的长连接模式,也可以称为双向连接.一.双连接,服务端与客户端都开ThriftServer如果网络环境可控,可以让服务端与客户端互相访问,你可以给 ...