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. Analysis of the Facebook.app for iOS

    Analysis of the Facebook.app for iOS Posted Oct 18, 2016 Did you ever wonder why the Facebook.app fo ...

  2. opengl问题

    1.glCreateShader(GL_VERTEX_SHADER)失败原因: 在调用glewInit()初始化之后才能create shader;

  3. Oracle12C查询自建用户(非系统自带)

      select username from dba_users where INHERITED='NO';

  4. 3ds Max制作碗实例教程

    一. 碗的建模.模型的结果如图WB—1所示: 图WB—1 1. 创建圆柱,并调节参数,转换到多边形,最终的结果图WB—2所示: 图WB—2 2.使用Inset(插入)插入一个面,再次执行Extrude ...

  5. div控制最小高度又自适高度

    div控制最小高度又自适高度我们在用div布局的时候经常会遇到这样的一种情况:我们需要设置一个div的高度,当里面的东西超过这个高度时,让这个容器自动被撑开,也就是自适应高度.当里面的信息很少时候,我 ...

  6. Hadoop-2.4.1 ubuntu集群安装配置教程

    一.环境 系统: Ubuntu 14.04 32bit Hadoop版本: Hadoop 2.4.1 (stable) JDK版本: 1.7 集群数量:3台 注意事项:我们从Apache官方网站下载的 ...

  7. UVA-1347 Tour 动态规划 难以确定的状态

    题目链接:https://cn.vjudge.net/problem/UVA-1347 题意 给出按x坐标排序的几个点. 欲从最左边不回头的走到最右边,然后再返回最左边. 每个点都要被访问,且只能经过 ...

  8. HDU 2196 Computer(经典树形DP)

    题意自己看(猜) 题解 这题很经典,就是记录dp[i][0/1/2]分别代表,从i点向下最大和次大深度,和向上最大深度. 然后转移就行了. 我的写法可能太丑了.死活调不出来,写了一个漂亮的 #incl ...

  9. Java Class文件结构

    此文件格式为JAVA7的格式,可能与JAVA6 CLASS不一致. 每一个Class都对应着唯一的一个类或借口的定义信息.这里,我们称为"Class文件格式"只是通俗的将任意一个符 ...

  10. 关于 Error: No PostCSS Config found in 的错误

    问题描述: 项目在本地运行不报错,上传到 GitHub 之后,再 clone 到本地, npm install 安装完成之后再执行 npm run dev 这时报错 Error: No PostCSS ...