• Codeforces Round #615 (Div. 3) B. Collecting Packages


    题目链接:B题链接

    在这里插入图片描述
    题目大意:走路收集背包,只能向右和向左走,如果不能全部收集则输出NO,否则则输出YES,并且路径要满足最短,且字典序最小。

    解题思路:直走别瞎拐,排序,先走到力原点近的,会导致左拐的地和向下的点全部会导致NO,所以再进行下判断。

    const int N = 10000;
    struct p{
        int x; int y;
    }a[N];
    bool cmp(struct p a, struct p b){
        return a.x*a.x+a.y*a.y < b.x*b.x+b.y*b.y;
    }
    int main(){
        int t; RD(t);
        while(t--){
            LL n; RD(n);
            for(int i = 0; i < n; i++){
                int xx, yy;
                cin >> xx >> yy;
                a[i].x = xx;
                a[i].y = yy;
            }
            bool flag = true;
            sort(a, a+n, cmp);
            string ans = "";
            for(int j = 0; j < a[0].x; j++) ans+="R";
            for(int j = 0; j < a[0].y; j++) ans+="U";
            for(int i = 1; i < n; i++){
                    if(a[i].x < a[i-1].x || a[i].y < a[i-1].y)
                    {
                        flag =false;
                        break;
                    }
                for(int j = a[i-1].x; j < a[i].x; j++) ans+="R";
                for(int j = a[i-1].y; j < a[i].y; j++) ans+="U";
            }
            if (flag){
                cout << "YES
    " << ans << '
    ';
            }
            else {
                cout << "NO
    ";
            }
        }
    }
    
  • 相关阅读:
    Design Thinking 设计思维
    SELECT小技巧
    网站架构
    代码生成器重构
    如何监控你的鼠标
    Asp.net超轻异步框架
    跨线程修改UI控件
    NPOI组件
    浅析Linux计算机工作机制
    VS2010单元测试
  • 原文地址:https://www.cnblogs.com/ygbrsf/p/12519584.html
Copyright © 2020-2023  润新知