设为首页 加入收藏

TOP

HDU 4452 Running Rabbits (模拟题)
2014-11-23 20:10:30 来源: 作者: 【 】 浏览:6
Tags:HDU 4452 Running Rabbits 模拟题

题意: 有两只兔子,一只在左上角,一只在右上角,两只兔子有自己的移动速度(每小时),和初始移动方向。

现在有3种可能让他们转向:撞墙:移动过程中撞墙,掉头走未完成的路。 相碰: 两只兔子在K点整(即处理完一小时走的路后),在同一点,兔子A和兔子B的方向互相交换一下。 向左转 : 两只兔子有自己的转向时间T,每隔T小时,它就会向左转, 但是相碰的优先级高于它,相碰之后就不处理左转问题了。

#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include //形如INT_MAX一类的   
#define MAX 100005   
#define INF 0x7FFFFFFF   
#define REP(i,s,t) for(int i=(s);i<=(t);++i)   
#define ll long long   
#define mem(a,b) memset(a,b,sizeof(a))   
#define mp(a,b) make_pair(a,b)   
#define L(x) x<<1   
#define R(x) x<<1|1   
# define eps 1e-5   
//#pragma comment(linker, "/STACK:36777216") ///传说中的外挂   
using namespace std;  
int n;  
struct node {  
    int x,y;  
    int sp,turn;  
    int dir; // 0,1,2,3   
} tom,jer;  
  
int dirx[] = {-1,0,1,0};  
int diry[] = {0,1,0,-1};  
int judge(char c) {  
    if(c == 'N') return 0;  
    if(c == 'E') return 1;  
    if(c == 'S') return 2;  
    if(c == 'W') return 3;  
}  
  
void go(node &a,int d) {  
    for(int i=0; i> c;  
        scanf("%d%d",&tom.sp,&tom.turn);  
        tom.dir = judge(c);  
        cin >> c;  
        scanf("%d%d",&jer.sp,&jer.turn);  
        jer.dir = judge(c);  
        scanf("%d",&h);  
        solve(h);  
        printf("%d %d\n",tom.x,tom.y);  
        printf("%d %d\n",jer.x,jer.y);  
    }  
    return 0;  
}  

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include //形如INT_MAX一类的
#define MAX 100005
#define INF 0x7FFFFFFF
#define REP(i,s,t) for(int i=(s);i<=(t);++i)
#define ll long long
#define mem(a,b) memset(a,b,sizeof(a))
#define mp(a,b) make_pair(a,b)
#define L(x) x<<1
#define R(x) x<<1|1
# define eps 1e-5
//#pragma comment(linker, "/STACK:36777216") ///传说中的外挂
using namespace std;
int n;
struct node {
    int x,y;
    int sp,turn;
    int dir; // 0,1,2,3
} tom,jer;

int dirx[] = {-1,0,1,0};
int diry[] = {0,1,0,-1};
int judge(char c) {
    if(c == 'N') return 0;
    if(c == 'E') return 1;
    if(c == 'S') return 2;
    if(c == 'W') return 3;
}

void go(node &a,int d) {
    for(int i=0; i> c;
        scanf("%d%d",&tom.sp,&tom.turn);
        tom.dir = judge(c);
        cin >> c;
        scanf("%d%d",&jer.sp,&jer.turn);
        jer.dir = judge(c);
        scanf("%d",&h);
        solve(h);
        printf("%d %d\n",tom.x,tom.y);
        printf("%d %d\n",jer.x,jer.y);
    }
    return 0;
}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇uva 11524 - InCircle (二分法) 下一篇UVA10168

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·微服务 Spring Boot (2025-12-26 18:20:10)
·如何调整 Redis 内存 (2025-12-26 18:20:07)
·MySQL 数据类型:从 (2025-12-26 18:20:03)
·Linux Shell脚本教程 (2025-12-26 17:51:10)
·Qt教程,Qt5编程入门 (2025-12-26 17:51:07)