Stay Hungry,Stay Foolish!

C - Loong Tracking

C - Loong Tracking

题目传送门

https://atcoder.jp/contests/abc335/tasks/abc335_c

 

思路

贪吃蛇,头部不断更新, 原来的头部会变成颈部,颈部变成胸膛,..., 原来的尾部删除。

采用双端队列,

头部 根据 头部做更新

尾部删除。

Code

https://atcoder.jp/contests/abc335/submissions/49143475

复制代码
struct NODE{
    int x;
    int y;
};

deque<struct NODE> dq;

int n,q;

int main()
{
    cin >> n;
    cin >> q;

    for(int i=1; i<=n; i++){
        struct NODE nd;
        nd.x = i;
        nd.y = 0;
        
        dq.push_back(nd);
    }

    for(int i=0; i<q; i++){
        int action;
        cin >> action;
        
        if (action == 1){
            char c;
            cin >> c;

            struct NODE f;
            f = dq.front();

            if (c == 'U'){
                f.y++;
            } else if (c == 'D') {
                f.y--;
            } else if (c == 'L') {
                f.x--;
            } else if (c == 'R') {
                f.x++;
            } else {
                // no other branch should happen
            }
            
            dq.push_front(f);
            dq.pop_back();
        } else if (action == 2){
            int p;
            cin >> p;
            
            cout << dq[p-1].x << " " << dq[p-1].y << endl;
        }
    }

    return 0;
}
复制代码

 

posted @   lightsong  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
历史上的今天:
2023-01-07 E - Don't Isolate Elements -- ATCODER
2021-01-07 covariance of sklearn
2018-01-07 JQuery Rest客户端库
2018-01-07 JSViews--JQuery系的MVVM框架
2018-01-07 MobX响应式编程库
2017-01-07 LazyMan的Promise解法
千山鸟飞绝,万径人踪灭
点击右上角即可分享
微信分享提示