P酱的冒险旅途(思维)

P酱的冒险旅途

Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)

Submit Status

P酱是个可爱的男孩子,有一天他在野外冒险,不知不觉中走入了一块神奇的地方。他在0时刻进入这个地方,每一时刻他都只能向某一特定的方向移动长度为1的距离,当然他也可以选择不移动。移动需要花费1的时间。

各个时刻他允许移动的方向由一个字符串给出,字符串只包含UDLR四种字符,其中U表示向上(y轴正方向)移动,D表示向下(y轴负方向)移动,L表示向左(x轴负方向)移动,R表示向右(x轴正方向)移动。

字符串的第x个字符代表了第x时刻P酱可以移动的方向,字符串的长度只有t,也就是说,超过t时刻,P酱就要被邪恶的魔王大爷抓走了~

现在P酱在坐标原点,即(0,0)点,而出口在(x,y)点,P酱希望在规定的时间t内尽快走到出口。帮助P酱在最短的时间内离开这里吧~

Input

第一行包含一个正数 T (T≤100),表示数据组数。

接下来每组数据包含两行,第一行包含三个整数 x,y,t (−105≤x,y≤105,0<t≤105);第二行包含一个长度为t的字符串,第i个字符表示在i时刻他能移动的方向,字符串只包含UDLR四种字母。

Output

对于每组数据输出一行,表示P酱到达出口的最早时刻。如果他无法在t时刻内到达出口,输出-1

Sample input and output

Sample Input Sample Output
2
1 -1 5
LDRDR
-2 1 8
RRUDDLRU
3
-1

Hint

第一组样例:

  1. P酱在0时刻位于原点(0,0),他只能向左移动,但他选择不走。
  2. P酱在1时刻依然位于原点(0,0),他只能向下移动,于是他向下移动到了(0,−1)
  3. P酱在2时刻位于(0,−1),他只能向右移动,于是他移动到了出口(1,−1),所以在3时刻,P酱离开了这片区域!

题解:受着上题的影响,于是苦逼的我果断暴力了(想都没想);然后结果可想而知,肯定超时了。10的5次方,每次两种选择,也就是2的10万次方,不超时才算有鬼了;

没浪费时间直接按照题意写了下,就A了;

#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
#define mem(x,y) memset(x,y,sizeof(x))
#define SI(x) scanf("%d",&x)
#define PI(x) printf("%d",x)
#define P_ printf(" ")
const int INF=0x3f3f3f3f;
const int MAXN=1e5+100;
char s[MAXN];
int x,y,t;
int main(){
    int T;
    SI(T);
    while(T--){
        scanf("%d%d%d",&x,&y,&t);
        scanf("%s",s+1);
        int ans=0,nx=0,ny=0,flot=0;
        for(int i=1;s[i];i++,ans++){
            if(x==nx&&y==ny){
                flot=1;break;
            }
            if(s[i]==‘L‘){
                if(x<=0&&nx>x)nx--;
            }
            if(s[i]==‘R‘){
                if(x>=0&&nx<x)nx++;
            }
            if(s[i]==‘U‘){
                if(y>=0&&ny<y)ny++;
            }
            if(s[i]==‘D‘){
                if(y<=0&&ny>y)ny--;
            }
        }
        if(flot)printf("%d\n",ans);
        else puts("-1");
    }
    return 0;
} 

暴力超时了,也贴下吧:

#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
#define mem(x,y) memset(x,y,sizeof(x))
#define SI(x) scanf("%d",&x)
#define PI(x) printf("%d",x)
#define P_ printf(" ")
const int INF=0x3f3f3f3f;
const int MAXN=1e5+100;
char s[MAXN];
int x,y,t;
int ans;
void dfs(int nx,int ny,int cur){
    if(cur>t)return;
    if(nx==x&&ny==y){
        ans=min(ans,cur-1);
        return;
    }
    dfs(nx,ny,cur+1);
    if(s[cur]==‘L‘)dfs(nx-1,ny,cur+1);
    if(s[cur]==‘R‘)dfs(nx+1,ny,cur+1);
    if(s[cur]==‘U‘)dfs(nx,ny+1,cur+1);
    if(s[cur]==‘D‘)dfs(nx,ny-1,cur+1);
}
int main(){
    int T;
    SI(T);
    while(T--){
        scanf("%d%d%d",&x,&y,&t);
        scanf("%s",s+1);
        ans=INF;
        dfs(0,0,1);
        if(ans==INF)puts("-1");
        else printf("%d\n",ans);
    }
    return 0;
} 
时间: 2024-10-17 14:46:10

P酱的冒险旅途(思维)的相关文章

2017年去哪儿玩性价比最高?北京名列第31位o3

在宽大的展厅里,展出有30多张小画,没有大红大绿,也没有鸡年吉祥的内容,反倒是清寂空旷,充满禅意.青年批评家李辉武评价认为,这是画家用充满禅机的思想审视着与世界.与自我的关系,是在做一次追寻人文理想的冒险旅途. 围绕长沙创建国家创新创意中心,将实施创新驱动战略,在航天科技.新能源.人工智能等重点领域寻求突破,建设一批技术创新中心.研发总部.新型技术研究院,构建完备的产业和创新体系.挖掘文化底蕴,传承发展雨花"非遗"特色文化,扩大文化影响力,做大做强文化创意产业,建设一批文化创新.运营.

0915 N校联考

树上路径(phantasm) 题目背景 Akari是一个普通的初中生. 题目描述 Akari的学校的校门前生长着一排n棵树,从西向东依次编号为1∼n.相邻两棵树间的距离都是1.Akari上课的教学楼恰好在树1旁,所以每个课间,Akari都很想走出教室,上树活动.Akari会依次经过m棵树,从树1一路向东跳到树n.临近上课时,Akari会再次上树,经过m棵树从树n一路向西跳到树1,准备上课.由于Akari睡眠很充足,Akari每次跳跃至少会移动k的距离,因此Akari在上树前需要合理规划她的跳跃路

【Android开发-2】每一次的Hello World,都是一次冒险和成长

前言:从大学开始,自己才算真正接触电脑:自己第一台电脑是组装机2500左右,组件都是自己从百度搜的,然后去电子城买了相关组件,记得当时没钱,都是挑性价比比较高的组件,显示器AOC,主板技嘉,CPU是酷睿双核,具体型号没记住,希捷硬盘320G,电源跟主机箱都是老板推荐最便宜的,没显卡.自从拥有了第一台电脑,当然当时是比较兴奋的,但好像不像当初刚买时的愿望是拿来学习的,结果是拿来看片,打拳皇了.到大学第二年,才意识到要学点东西了,电脑才走上正途.对于计算机编程,每学习一门语言,最经常看到的例子就是H

万万没想到用理工科思维理解世界-摘录

万万没想到用理工科思维理解世界-万维钢(同人于野)著 第一章 怎样杀死海星 传统组织就如同蜘蛛,它的智力集中在大脑,只要你把蜘蛛的头去掉,蜘蛛就会死亡.而去中心化组织就如同海星,海星根本就没有头.它的智能分布在身体各处,一旦你打掉它身体的一部分,那个部分甚至可能自己再长成另一个海星. 不过去中心化组织有个关键的弱点:你很难通过这样的组织赚大钱.分权的产业利润低,只有集权才能获得高利润. 怎样杀死海星?<海星与蜘蛛>给了三个策略. 第一个策略是改变环境.既然你们是靠一种意识形态联系在一起,我就让

读书笔记2014第9本:《清醒思考的艺术:你最好让别人去犯的52种思维错误》

1)幸存偏误 由于日常生活中更容易看到成功.看不到失败,你会系统性地高估成功的希望. 尽可能常去逛逛曾经大有希望的项目.投资和事业的墓地,这样的散步虽然伤感,但对你是有好处的. 2)游泳选手身材错觉 游泳选手之所以成为出色的游泳选手,是因为他们拥有这样的身材,他们的身材是一种选择标准,而不是他们运动的结果. 模特儿天生丽质,因此才被选来拍化妆品广告,而不是化妆品让人漂亮. 3)过度自信效应 请对所有预测持怀疑态度,尤其是当这些预测是由所谓的专家们作出的时候,请在筹划任何事情都从悲观的角度出发,作

固化型思维与成长型思维

最近读完一本书,<看见成长的自己>,这本书让我审视了自己长久以来所接受的思维观点,并给了我战胜心魔的力量,让我以后能专注把事情做更好,而不是因自己心里障碍做不了事.我把书里精彩的句子摘抄如下. 1. 在僵固思维模式里,这些品质代表的只是你手上的一把牌,而你总是试图说服自己和他人这是一把同花顺,却在内心深处担心这只是一对10.然而,在另外一种思维模式中,这把牌(不论是什么)仅仅是你走向成功的起点. 2. "不去冒险,就不会失败","如果你一开始没有成功,也许你就没有

《原来我还可以这样活:拆掉思维里的墙》作者:古典

第一部分 一.职业安全感奴隶 房子,月供,每月盈余资金少,舍不得投资学习交流,每每小心翼翼,梦想定格在了一点: 反过来,打开手脚,可能会更好(); 你 一定也有过这种感觉,自己陷入那种那种好像什么都有一点可能,但是又什么都做不到的恐惧.自己突然很弱小很弱小,禁不起任何的失败的.世界很大,我却没有 力量去任何地方:那是一种好像被什么东西囚禁住的感觉.这个时候你多希望有一个权威的声音说,去吧!你一定可以成!但是没有任何人会这样说.职业规划师们 也不会,他们会知道,这不是一个职业规划的问题,而是一个心

papi酱视频因违规遭下线整改,你知道原因吗?

今日4月18日,在微信上的一篇<papi酱遭广电总局封杀 罗振宇1200万恐打水漂>的文章迅速转了起来,说的就是现在网红第一人“papi酱”的视频被广电总局责令下架的消息.箭头直指papi酱系列视频中的不适言词,此消息一出,papi酱的经纪人和投资团队纷纷出来“辟谣”,而就在刚才,广电总局责令的消息证实,且,papi酱的视频也一一在视频网站下架,不过就在下午6点29分新出系列4-18期<papi酱——一个人的减肥全过程>都刚刚上线. 现在已经证实的消息:papi酱被责令下架整改,原

《万万没想到:用理工科思维理解世界》读书简记

1.确认偏误(confirmation bias)  万万没想到:用理工科思维理解世界 (万维钢, loc. 291-291) (或称肯证偏误.验证性偏见) 是个人无论合乎事实与否,偏好支持自己的成见.猜想的倾向.由此,人们在脑中选择性地回忆.搜集有利细节,忽略矛盾的信息,并加以片面诠释. 2.搞科研的一大乐趣就是被别人改变想法! 万万没想到:用理工科思维理解世界 (万维钢, loc. 424-424) 我想“改变”是一个顿悟的过程,搞科研是百分之九十九的汗水(渐变)之后,百分之一的灵感(改变)