码迷,mamicode.com
首页 > 其他好文 > 详细

codeforce round615 div3 B

时间:2020-02-01 01:07:10      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:pac   space   bsp   题解   span   赋权   out   bfs   false   

这道题一开始打算给每个点赋权值,再用记录路径的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\n";
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\n";
31             cout<<ans<<endl;
32         }
33     }
34 }

 

codeforce round615 div3 B

标签:pac   space   bsp   题解   span   赋权   out   bfs   false   

原文地址:https://www.cnblogs.com/mlcn-2000/p/12247336.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!