zoukankan      html  css  js  c++  java
  • codeforce round615 div3 B

    这道题一开始打算给每个点赋权值,再用记录路径的bfs去找可能的结果,后来看了题解发现这样子做麻烦了。观察就可以发现,给出的点要能形成一条通路,必须满足任意两个点(xi,yi),(xj,yj),其中i!=j,并且xi<yj,yi<yj,不然就无法走到该点,故可以推断出所有点必然满足一定的升序排列,所以只需要按照排好序的点来找就行。

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int main(){
     4     int t;
     5     cin>>t;
     6     for(int i = 0;i<t;i++){
     7         int n;
     8         cin>>n;
     9         vector<pair<int,int>>a(n);
    10         for(int k = 0;k<n;k++){
    11             cin>>a[k].first>>a[k].second;
    12         }
    13         sort(a.begin(),a.end());
    14         pair<int,int> cur = make_pair(0,0);
    15         string ans;
    16         bool ok = true;
    17         for(int j = 0;j<n;j++){
    18             int r = a[j].first - cur.first;
    19             int u = a[j].second - cur.second;
    20             if(r<0||u<0){
    21                 cout<<"NO
    ";
    22                 ok = false;
    23                 break;
    24             }
    25             ans+=string(r,'R');
    26             ans+=string(u,'U');
    27             cur = a[j];
    28         }
    29         if(ok){
    30             cout<<"YES
    ";
    31             cout<<ans<<endl;
    32         }
    33     }
    34 }
  • 相关阅读:
    JDK源码阅读--AbstractStringBuilder
    JDK源码阅读--String
    JDK源码阅读--Object
    linux查看日志
    velocity 相关
    oracle Trigger
    ssm调用后台oracle存储过程统计分析数据
    oracle 优化相关
    synchronized 控制并发(活动秒杀)
    SpringBoot自动装配的原理
  • 原文地址:https://www.cnblogs.com/mlcn-2000/p/12247336.html
Copyright © 2011-2022 走看看