1510: Happy Robot

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 19  Solved: 7

Description

Input

There will be at most 1000 test cases. Each case contains a command sequence with no more than 1000 characters.

Output

For each test case, print the case number, followed by minimal/maximal possible x (in this order), then the minimal/maximal possible y.

Sample Input

F?F
L??
LFFFRF

Sample Output

Case 1: 1 3 -1 1
Case 2: -1 1 0 2
Case 3: 1 1 3 3

HINT

 

Source

湖南省第十届大学生计算机程序设计竞赛

解题:dp啦,现场居然没做出来。。。笨得还可以。。

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <climits>
#include <vector>
#include <queue>
#include <cstdlib>
#include <string>
#include <set>
#include <stack>
#define LL long long
#define pii pair<int,int>
#define INF 0x3f3f3f3f
using namespace std;
const int maxn = ;
char cmd[maxn];
int dp[][];
const int dir[][] = {,,,-,-,,,};//右 下 左 上
int mymax(int a,int b){
return max(a,b);
}
int mymin(int a,int b){
return min(a,b);
}
int go(int (*op)(int,int),bool flag,int x,int y){
int cur = ;
dp[][] = ;
for(int i = ; i < ; ++i)
if(flag) dp[][i] = -INF;
else dp[][i] = INF;
for(int i = ; cmd[i]; ++i) {
for(int k = ; k < ; ++k) dp[cur^][k] = flag?-INF:INF;
if(cmd[i] == 'F' || cmd[i] == '?') {
dp[cur^][] = op(dp[cur^][],dp[cur][]+x);
dp[cur^][] = op(dp[cur^][],dp[cur][]-y);
dp[cur^][] = op(dp[cur^][],dp[cur][]-x);
dp[cur^][] = op(dp[cur^][],dp[cur][]+y);
}
if(cmd[i] == 'L' || cmd[i] == '?') {
dp[cur^][] = op(dp[cur^][],dp[cur][]);
dp[cur^][] = op(dp[cur^][],dp[cur][]);
dp[cur^][] = op(dp[cur^][],dp[cur][]);
dp[cur^][] = op(dp[cur^][],dp[cur][]);
}
if(cmd[i] == 'R' || cmd[i] == '?') {
dp[cur^][] = op(dp[cur^][],dp[cur][]);
dp[cur^][] = op(dp[cur^][],dp[cur][]);
dp[cur^][] = op(dp[cur^][],dp[cur][]);
dp[cur^][] = op(dp[cur^][],dp[cur][]);
}
cur ^= ;
}
int ans = flag?-INF:INF;
for(int i = ; i < ; ++i)
ans = op(dp[cur][i],ans);
return ans;
}
int main() {
int cs = ;
while(~scanf("%s",cmd)) {
int max_x = go(mymax,true,,);
int min_x = go(mymin,false,,);
int max_y = go(mymax,true,,);
int min_y = go(mymin,false,,);
printf("Case %d: %d %d %d %d\n",cs++,min_x,max_x,min_y,max_y);
}
return ;
}

CSU 1510 Happy Robot的更多相关文章

  1. Robot Framework用户手册 (版本:3.0)

    版权信息:诺基亚网络和解决中心 本翻译尊重原协议,仅用于个人学习使用 1.开始: 1.1 介绍: Robot Framework是一个基于Python的,为终端测试和验收驱动开发(ATDD)的可扩展的 ...

  2. selenium webdriver 右键另存为下载文件(结合robot and autoIt)

    首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为 ...

  3. RIDE -- Robot Framework setup

    RobotFramework 是一款基于python 的可以实现关键字驱动和数据驱动并能够生成比较漂亮的测试报告的一款测试框架 这里使用的环境是 python-2.7.10.amd64.msi RID ...

  4. [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 ...

  5. Robot Framework自动化测试 ---视频与教程免费分享

    当我第一次使用Robot Framework时,我是拒绝的.我跟老大说,我拒绝其实对于习惯了代码的自由,所以讨厌这种“填表格”式的脚本.老大说,Robot Framework使用简单,类库丰富,还可以 ...

  6. robot创建桌面图标(转载)

    桌面ride图标,安装之后会自动创建(偶尔也会创建失败),创建桌面图标方法如下: 1. 新建快捷方式 在桌面右击鼠标,弹出的菜单选择 新建-快捷方式 ,然后在"请键入对象"的位置输 ...

  7. Robot Framework 的安装和配置(转载)

    Robot Framework 的安装和配置 在使用 RF(Rebot framework)的时候需要 Python 或 Jython 环境,具体可根据自己的需求来确定.本文以在有 Python 的环 ...

  8. 解决从jenkins打开robot framework报告会提示‘Opening Robot Framework log failed ’的问题

    最新的jenkins打开jenkins robot framework报告会提示如下 Verify that you have JavaScript enabled in your browser.  ...

  9. 在centos7中安装Robot Framework

    安装前景介绍: 最初,我们是在Windows环境下搭建Robot Framework来对我们的服务进行接口测试的(想知道如何在Windows下安装Robot Framework,可以参考我同事的博客h ...

随机推荐

  1. 3ds Max怎么制作亮木材质的球体

    3DSMax怎么制作亮木材质的球体?3DSMax中想要设计一款亮木材质的球体,该怎么设置呢?下面我们就来看看详细的教程,需要的朋友可以参考下! 1.运行软件,选择材质编辑器图标: 3.双击拖拽出的材质 ...

  2. js表格隔行换色和hover效果

    <!--js效果--> <script src="js/jquery.min.js" language="javascript">< ...

  3. TypeError: Cannot use 'in' operator to search for 'length' in....

    前台页面读取商品属性是字符串形式,数据库中存储商品属性是集合形式,前台数据存入数据库中数据格式会自动转,后台数据回显到前台数据格式需要手动转换,否则会报异常 错误信息提示:

  4. Fiddler常用配置

    过滤目标地址: 抓取https的设置:

  5. 服务器搭建域控与SQL Server的AlwaysOn环境过程(二) 搭建客户端节点 服务器

    1. 修改客户端服务器的计算机名,重启后,如果服务器属于克隆服务器,需要修改服务器SID,如果没有则调过这一步. 命令行方式:启动Windows2008进入系统后,打开“CMD窗口”并进入到" ...

  6. 解决IIS服务器部署 字体图标找不到的原因

    引言 我们往往在IIS上部署Web项目,或者发布Web项目的时候,经常会遇到浏览器找不到字体文件(woff/woff2)产生的错误.这样会导致浏览器无法加载字体图标,在影响加载时间的同时,更无法显示对 ...

  7. 15条JavaScript最佳实践【转】

    本文档整理大部分公认的.或者少有争议的JavaScript良好书写规范(Best Practice).一些显而易见的常识就不再论述(比如要用对象支持识别判断,而不是浏览器识别判断:比如不要嵌套太深). ...

  8. 【转载】spring boot 链接 虚拟机(Linux) redis

    原文:https://www.imooc.com/article/43279?block_id=tuijian_wz 前提是你已经安装redis且支持远程连接,redis的安装这里不再赘述,有需要的可 ...

  9. Java 二进制,八进制,十进制,十六进制转换

    A.十进制转换其他 十进制转成二进制  Integer.toBinaryString(int i) 十进制转成八进制  Integer.toOctalString(int i) 十进制转成十六进制:  ...

  10. C# 获取本地电脑所有的盘符

    话不多说,直接上菜:  public List<string> GetRemovableDeviceID() { List<string> deviceIDs = new ...