[agc004d]salvage robot
题意:
别问我谁翻译的
虫合虫莫国的领土我们可以抽象为H*W的笼子,在这虫合土上,有若干个机器人和一个出口,其余都是空地,每次虫合虫莫会要求让所有的机器人向某个方向移动一步,当机器人移动到出口时会被虫合虫莫氵舌扌商出来,当机器人移出笼子时会自木木_火,求最多能取出多少个机器人
$H,W<=100$
题解:
暴力DP;
枚举子矩阵的左上角和右下角,$f[x][y][x_1][y_1]$表示走完$(x,y)~(x_1,y_1)$这个子矩形最多能扌商多少机器人,维护每行每列机器人数的前缀和,暴力转移即可,时间复杂度是$O(n^4)$,但是常数很小。
代码:
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
short f[][][][];
int h,w,vx,vy,ans=,num[][],pre1[][],pre2[][];
char s[];
int main(){
scanf("%d%d",&h,&w);
for(int i=;i<=h;i++){
scanf("%s",s+);
for(int j=;j<=w;j++){
if(s[j]=='o'){
pre1[i][j]=pre2[i][j]=num[i][j]=;
}else if(s[j]=='E'){
vx=i,vy=j;
}
pre1[i][j]+=pre1[i][j-];
pre2[i][j]+=pre2[i-][j];
}
}
for(int i=vx;i;i--){
for(int j=vy;j;j--){
for(int k=vx;k<=h;k++){
for(int l=vy;l<=w;l++){
if(i>&&i+vx>k+)f[i-][j][k][l]=max((int)f[i-][j][k][l],(int)(f[i][j][k][l]+pre1[i-][min(l,w-vy+j)]-pre1[i-][max(j-,l-vy)]));
if(j>&&j+vy>l+)f[i][j-][k][l]=max((int)f[i][j-][k][l],(int)(f[i][j][k][l]+pre2[min(k,h-vx+i)][j-]-pre2[max(i-,k-vx)][j-]));
if(k<h&&vx+k<h+i)f[i][j][k+][l]=max((int)f[i][j][k+][l],(int)(f[i][j][k][l]+pre1[k+][min(l,w-vy+j)]-pre1[k+][max(j-,l-vy)]));
if(l<w&&vy+l<w+j)f[i][j][k][l+]=max((int)f[i][j][k][l+],(int)(f[i][j][k][l]+pre2[min(k,h-vx+i)][l+]-pre2[max(i-,k-vx)][l+]));
}
}
}
}
for(int i=vx;i;i--){
for(int j=vy;j;j--){
for(int k=vx;k<=h;k++){
for(int l=vy;l<=w;l++){
ans=max(ans,(int)f[i][j][k][l]);
}
}
}
}
printf("%d",ans);
return ;
}
[agc004d]salvage robot的更多相关文章
- NOIp模拟赛二十九
又是受虐的一天呢~接下来四天都要打模拟赛QAQ 今日分数:0(100)+100+0=100 A题O(读入)结论题判断结果时没return 0被subtask卡成0分,喜提fstQAQ,B题DP,C题不 ...
- Robot Framework用户手册 (版本:3.0)
版权信息:诺基亚网络和解决中心 本翻译尊重原协议,仅用于个人学习使用 1.开始: 1.1 介绍: Robot Framework是一个基于Python的,为终端测试和验收驱动开发(ATDD)的可扩展的 ...
- selenium webdriver 右键另存为下载文件(结合robot and autoIt)
首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为 ...
- RIDE -- Robot Framework setup
RobotFramework 是一款基于python 的可以实现关键字驱动和数据驱动并能够生成比较漂亮的测试报告的一款测试框架 这里使用的环境是 python-2.7.10.amd64.msi RID ...
- [8.2] Robot in a Grid
Imagine a robot sitting on the upper left corner of grid with r rows and c columns. The robot can on ...
- Robot Framework自动化测试 ---视频与教程免费分享
当我第一次使用Robot Framework时,我是拒绝的.我跟老大说,我拒绝其实对于习惯了代码的自由,所以讨厌这种“填表格”式的脚本.老大说,Robot Framework使用简单,类库丰富,还可以 ...
- robot创建桌面图标(转载)
桌面ride图标,安装之后会自动创建(偶尔也会创建失败),创建桌面图标方法如下: 1. 新建快捷方式 在桌面右击鼠标,弹出的菜单选择 新建-快捷方式 ,然后在"请键入对象"的位置输 ...
- Robot Framework 的安装和配置(转载)
Robot Framework 的安装和配置 在使用 RF(Rebot framework)的时候需要 Python 或 Jython 环境,具体可根据自己的需求来确定.本文以在有 Python 的环 ...
- 解决从jenkins打开robot framework报告会提示‘Opening Robot Framework log failed ’的问题
最新的jenkins打开jenkins robot framework报告会提示如下 Verify that you have JavaScript enabled in your browser. ...
随机推荐
- java 公开内部类无法实例化 no enclosing instance 解决办法
因为B类不是A类的静态内部类,所以B累也只能像A类的成员一样通过new A()的实例访问,new(new A()).B(),这显然不是我们想要的方式,于是需要在B类的前边加上static,变成下边这样 ...
- elment表格分页
项目的时候遇到了一个分页的bug,经过分析Element源码之后找到了问题所在,现在把这个问题及解决方法记录下来. 项目中要实现的功能是用户选择查看表格的时候在任意页面点击查询,得到结果之后要展示的页 ...
- Module build failed: Module failed because of a eslint warning
eslint 设置 warning 级别,在 开发编译失败的原因,报错如下: F:\vue-mobile-skeleton>npm run dev > byhealth@1.0.0 dev ...
- python_函数、局部变量与全局变量
#函数优点:代码重用.保持一致性.可扩展性import time def logger(): """时间年-月-日 分""" time_fo ...
- pytorch 3 activation 激活函数
2.3 Activation Function import torch import torch.nn.functional as F from torch.autograd import Vari ...
- [剑指offer] 8+9. 跳台阶+变态跳台阶 (递归 时间复杂度)
跳台阶是斐波那契数列的一个典型应用,其思路如下: # -*- coding:utf-8 -*- class Solution: def __init__(self): self.value=[0]*5 ...
- STM32 关于HAL库硬件SPI要注意的问题总结
利用STM32CUbeMx编写程序,大大方便了开发,最近做的项目利用到了 STM32CUbeMx的硬件SP,这里对SPI的使用做一个总结. HAL库里的硬件SPI主要有以下几个库函数: /* hspi ...
- apche本地测试,无法访问此网站
- Windows里正确安装Zookeeper以服务运行
不多说,直接上干货! 为什么要在Win下来安装Zookeeper呢? 其实玩过大数据的人很清楚,在Linux下我更不说了.在win下,如Disconf .Dubbo等应用. 所以,它的应用是非常广的. ...
- Socket实现一个简单的半双工通信
Socket是client进行在网络与server进行数据交互的一种基本通信方式.通信有三种通信.即单工.半双工,和全双工. 所谓单工,就是仅仅可以进行单向通信,如bb机. 而半双工就是一来一回的通信 ...