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. Oracle查询当前用户下的所有表及sqlplus 设置 列宽

    如果oracle服务器中装有多个数据库实例,则在用户名处输入:用户名/密码@数据库名称.如果数据库服务器不在本机上,还需要加上数据库服务器的地址:用户名/密码@IP地址/数据库名称. [oracle@ ...

  2. A. Amr and Music

    解题思路:给出n种乐器学习所需要的时间,以及总共的天数, 问最多能够学多少门乐器,并且输出这几门乐器在原序列中的序号(不唯一) 按照升序排序,为了学到最多的乐器,肯定要选择花费时间最少的来学习 然后用 ...

  3. c语言中,常见数据类型的字节数

    一直记不住这个,特意mark下来 和机器字长及编译器有关系: 所以,int,long int,short int的宽度都可能随编译器而异.但有几条铁定的原则(ANSI/ISO制订的):  1 size ...

  4. 在javascript中对于this指向的再次理解

    总所周知,function () {}函数体内的this对象指向的是调用该函数的对象,那么我们看一下这个例子 <script> var length = 3; function fn () ...

  5. 在远程X server上显示图形的设置方法

    1.在服务器的/etc/ssh/sshd_config中,设置X11Forwarding yes,然后重启ssh服务,cd /etc/init.d这个目录下执行 ./ssh restart 2.在客户 ...

  6. 解决Vue引入百度地图JSSDK:BMap is undefined 问题

    百度地图官网文档介绍使用JSSDK时,仅提供了2种引入方式: script引入 异步加载 解决跨域问题,实例调用百度地图 但vue项目中仅某一两个页面需要用到百度地图,所以不想在 index.html ...

  7. Gitlab command line instructions

    Git global setup git config --global user.name "winner" git config --global user.email &qu ...

  8. PatentTips - Controlling voltage and frequency

    BACKGROUND OF THE INVENTION Mobile devices, such as but not limited to personal data appliances, cel ...

  9. Qt之图形(绘制漂亮的圆弧)

    简述 综合前面对二维绘图的介绍,想必我们对一些基本绘图有了深入的了解,下面我们来实现一些漂亮的图形绘制. 简述 圆形 效果 源码 弧形 效果 源码 文本 效果 源码 旋转 效果 源码 圆形 经常地,我 ...

  10. zoj 1655 单源最短路 改为比例+最长路

    http://acm.zju.edu.cn/onlinejudge/showProblem.do? problemId=655 没有理解清题意就硬套模板.所以WA了好几次. 解析看我的还有一篇http ...