codeforce round615 div3 B

Posted mlcn-2000

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }

 

以上是关于codeforce round615 div3 B的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #615 (Div. 3)

[Codeforces #615 div3]1294E Obtain a Permutation

[题解][Codeforces] Round_615_Div. 3 简要题解

Codeforces Round #615 (Div. 3)

Codeforces Round #615(Div.3)解题报告

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