[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. ...
随机推荐
- ZBrush 笔刷的基础参数
ZBrush®中的笔刷基本参数主要包括3个:Draw Size(绘制大小).Focal Shift(焦点衰减)和Z Intensity(深度强度),通常使用这3个基本参数对笔刷进行调整. 在视图文档区 ...
- 边框的使用,border-radius,box-shadow,border-image
<html> <head> <meta charset="UTF-8"> <title></ ...
- 【BZOJ5020】[LOJ2289]【THUWC2017】在美妙的数学王国中畅游 - LCT+泰勒展开
咕咕咕?咕咕咕! 题意: Description 数字和数学规律主宰着这个世界. 机器的运转, 生命的消长, 宇宙的进程, 这些神秘而又美妙的过程无不可以用数学的语言展现出来. 这印证了一句古老的名言 ...
- Windows Vista 安装和使用指导 - 停止支持后的几条建议
简介 曾经被广大网民吐槽的Windows Vista现在已经淡出了人们的视线,但仍有一些朋友想要体验一下这个操作系统.Windows Vista是Windows发展路线上的里程碑,相比之前的Windo ...
- n&(n-1)位运算的妙用
一.n-1发生了什么 ①.二进制数n,n-1后,如果最后一位是0,将向前一位借2,2-1=1.最后一位为1.如果前一位为0,将继续向前一位借2,加上本身少掉的1.则变为1.一直遇到1.减为0. 所以 ...
- Vue基础操作
一.Vue入门基础知识 1.Vue使用的基本操作 i. 先下载,引入vue.jsii. Vue,实例化一个vue实例化对象(new Vue({})) 1. 新建一个vue实例化对象(Vue是一个构造函 ...
- JDBC、事务和连接池
一:JDBC 1.什么是JDBC JDBC(Java Data Base Connectivity)SUN公司提供的一套操作数据库的标准规范.具体来讲是一种用于执行SQL语句的Java API,为多种 ...
- 为什么选性别会导致兴趣都选中-vue
为什么选性别会导致兴趣都选中-vue <%@ page language="java" import="java.util.*" pageEncoding ...
- 【SPOJ-GSHOP】Rama and Friends【贪心】【细节】
题意: 给出n个非严格递增的整数(可能有负数),必须操作k次.每次能够把当中一个数变为它的相反数,使得终于的数列和最大. 输出这个最大和. 考验怎样出坑数据卡自己的程序... #include < ...
- Python——异常基础
异常基础 在Python中,异常会依据错误自己主动地被触发.也能由代码触发和截获.异常由五个语句处理: 1.[try/except]:捕捉由Python或你引起的异常并恢复. 2.[try/final ...